dhomie-app 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +161 -138
- package/package.json +1 -1
- package/styles/fonts/Montserratarm-Black.otf +0 -0
- package/styles/fonts/Montserratarm-Bold.otf +0 -0
- package/styles/fonts/Montserratarm-ExtraBold.otf +0 -0
- package/styles/fonts/Montserratarm-ExtraLight.otf +0 -0
- package/styles/fonts/Montserratarm-Light.otf +0 -0
- package/styles/fonts/Montserratarm-Medium.otf +0 -0
- package/styles/fonts/Montserratarm-Regular.otf +0 -0
- package/styles/fonts/Montserratarm-SemiBold.otf +0 -0
- package/styles/fonts/Montserratarm-Thin.otf +0 -0
- package/styles/index.css +2 -0
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# dhomie-app
|
|
2
2
|
|
|
3
|
-
A self-contained Angular
|
|
3
|
+
A self-contained Angular library that delivers the full DHomie feature set — OIDC authentication (PKCE), apartment management, chat, documents, schedules, and more. Works in both a Capacitor native shell (iOS / Android) and a plain Angular web app.
|
|
4
4
|
|
|
5
|
-
The library
|
|
5
|
+
The consumer supplies a `MicroEnv` configuration object at route registration time. The library self-provisions all providers (OAuth, HTTP interceptor, SignalR, storage, i18n, fonts) inside a child `EnvironmentInjector` — nothing leaks into the host application.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -10,29 +10,36 @@ The library ships with OIDC credentials and API URLs **baked in** at publish tim
|
|
|
10
10
|
|
|
11
11
|
1. [Requirements](#1-requirements)
|
|
12
12
|
2. [Installation](#2-installation)
|
|
13
|
-
3. [
|
|
14
|
-
4. [
|
|
15
|
-
5. [Register
|
|
16
|
-
6. [
|
|
17
|
-
7. [
|
|
18
|
-
8. [
|
|
19
|
-
9. [
|
|
13
|
+
3. [Styles setup](#3-styles-setup)
|
|
14
|
+
4. [Configure the environment](#4-configure-the-environment)
|
|
15
|
+
5. [Register routes in the host app](#5-register-routes-in-the-host-app)
|
|
16
|
+
6. [Trigger login](#6-trigger-login)
|
|
17
|
+
7. [Register the custom URL scheme (native only)](#7-register-the-custom-url-scheme-native-only)
|
|
18
|
+
8. [How authentication works](#8-how-authentication-works)
|
|
19
|
+
9. [Available routes](#9-available-routes)
|
|
20
|
+
10. [Publishing a new version](#10-publishing-a-new-version)
|
|
20
21
|
|
|
21
22
|
---
|
|
22
23
|
|
|
23
24
|
## 1. Requirements
|
|
24
25
|
|
|
25
|
-
| Peer dependency
|
|
26
|
-
|
|
27
|
-
| `@angular/common`
|
|
28
|
-
| `@angular/core`
|
|
29
|
-
| `@angular/
|
|
30
|
-
| `@
|
|
31
|
-
| `@
|
|
32
|
-
| `@capacitor/
|
|
33
|
-
| `@capacitor/
|
|
34
|
-
| `@
|
|
35
|
-
| `
|
|
26
|
+
| Peer dependency | Version |
|
|
27
|
+
|----------------------------------|-----------|
|
|
28
|
+
| `@angular/common` | `^20.3.0` |
|
|
29
|
+
| `@angular/core` | `^20.3.0` |
|
|
30
|
+
| `@angular/forms` | `^20.3.0` |
|
|
31
|
+
| `@angular/platform-browser` | `^20.3.0` |
|
|
32
|
+
| `@angular/router` | `^20.3.0` |
|
|
33
|
+
| `@capacitor/app` | `^7.0.0` |
|
|
34
|
+
| `@capacitor/browser` | `^7.0.0` |
|
|
35
|
+
| `@capacitor/core` | `^7.0.0` |
|
|
36
|
+
| `@capacitor/device` | `^7.0.0` |
|
|
37
|
+
| `@capacitor/preferences` | `^7.0.0` |
|
|
38
|
+
| `@capacitor/push-notifications` | `^7.0.0` |
|
|
39
|
+
| `@ionic/angular` | `^8.0.0` |
|
|
40
|
+
| `@microsoft/signalr` | `^8.0.0` |
|
|
41
|
+
| `@ngx-translate/core` | `^17.0.0` |
|
|
42
|
+
| `angular-oauth2-oidc` | `^20.0.0` |
|
|
36
43
|
|
|
37
44
|
---
|
|
38
45
|
|
|
@@ -42,99 +49,130 @@ The library ships with OIDC credentials and API URLs **baked in** at publish tim
|
|
|
42
49
|
npm install dhomie-app
|
|
43
50
|
```
|
|
44
51
|
|
|
45
|
-
|
|
52
|
+
Install any peer dependencies your host app does not already have:
|
|
46
53
|
|
|
47
54
|
```bash
|
|
48
|
-
npm install
|
|
49
|
-
@capacitor/app @capacitor/browser @capacitor/core
|
|
50
|
-
@
|
|
55
|
+
npm install \
|
|
56
|
+
@capacitor/app @capacitor/browser @capacitor/core \
|
|
57
|
+
@capacitor/device @capacitor/preferences @capacitor/push-notifications \
|
|
58
|
+
@ionic/angular @microsoft/signalr @ngx-translate/core angular-oauth2-oidc
|
|
51
59
|
```
|
|
52
60
|
|
|
61
|
+
For native platforms, sync after installation:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
npx cap sync
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 3. Styles setup
|
|
70
|
+
|
|
71
|
+
The library ships pre-compiled CSS (Tailwind utilities + design tokens + fonts) inside the npm package. Add one line to your `angular.json`:
|
|
72
|
+
|
|
73
|
+
```json
|
|
74
|
+
"styles": [
|
|
75
|
+
"src/global.scss",
|
|
76
|
+
"node_modules/dhomie-app/styles/index.css"
|
|
77
|
+
]
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
No Tailwind installation, no PostCSS config, and no `@font-face` declarations are needed in the host app. The `Montserrat arm` font is bundled inside `node_modules/dhomie-app/styles/fonts/`.
|
|
81
|
+
|
|
53
82
|
---
|
|
54
83
|
|
|
55
|
-
##
|
|
84
|
+
## 4. Configure the environment
|
|
56
85
|
|
|
57
|
-
|
|
86
|
+
Create an environment file that implements `MicroEnv`:
|
|
87
|
+
|
|
88
|
+
```ts
|
|
89
|
+
// src/environments/environment.ts
|
|
90
|
+
import type { MicroEnv } from 'dhomie-app';
|
|
91
|
+
|
|
92
|
+
export const environment: MicroEnv = {
|
|
93
|
+
production: false,
|
|
94
|
+
oidc: {
|
|
95
|
+
issuer: 'https://your-oidc-server.com',
|
|
96
|
+
clientId: 'web',
|
|
97
|
+
scope: 'openid profile offline_access app',
|
|
98
|
+
redirectUri: 'https://localhost:3001/login-callback', // web OAuth callback
|
|
99
|
+
responseType: 'code',
|
|
100
|
+
showDebugInformation: true,
|
|
101
|
+
useSilentRefresh: false,
|
|
102
|
+
android: {
|
|
103
|
+
clientId: 'android',
|
|
104
|
+
redirectUri: 'com.your.app:/callback',
|
|
105
|
+
},
|
|
106
|
+
ios: {
|
|
107
|
+
clientId: 'ios',
|
|
108
|
+
redirectUri: 'yourapp:/callback',
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
microApiBaseUrl: 'https://your-api.com',
|
|
112
|
+
routes: {
|
|
113
|
+
homePath: 'app', // authenticated shell: /microapp/app/...
|
|
114
|
+
callbackPath: 'login-callback', // OAuth callback: /microapp/login-callback
|
|
115
|
+
},
|
|
116
|
+
defaultLanguage: 'am', // 'am' | 'en' | 'ru'
|
|
117
|
+
};
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Create a matching production file at `src/environments/environment.prod.ts` with `production: true` and your production URLs.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## 5. Register routes in the host app
|
|
125
|
+
|
|
126
|
+
Two routes are required: one for the web OAuth callback and one that lazy-loads the library.
|
|
58
127
|
|
|
59
128
|
```ts
|
|
60
129
|
// src/app/app.routes.ts
|
|
61
130
|
import { Routes } from '@angular/router';
|
|
62
|
-
import {
|
|
131
|
+
import { OAuthCallbackComponent } from 'dhomie-app';
|
|
132
|
+
import { environment } from '../environments/environment';
|
|
63
133
|
|
|
64
134
|
export const routes: Routes = [
|
|
65
135
|
{
|
|
66
|
-
path: '
|
|
67
|
-
loadComponent: () => import('./
|
|
136
|
+
path: '',
|
|
137
|
+
loadComponent: () => import('./login/login.page').then(m => m.LoginPage),
|
|
68
138
|
},
|
|
69
139
|
{
|
|
70
|
-
|
|
71
|
-
|
|
140
|
+
// Web OAuth: the IdP redirects here, then this component forwards
|
|
141
|
+
// query params to the library's internal callback route.
|
|
142
|
+
path: 'login-callback',
|
|
143
|
+
component: OAuthCallbackComponent,
|
|
144
|
+
data: { callbackRoute: `/microapp/${environment.routes.callbackPath}` },
|
|
72
145
|
},
|
|
73
146
|
{
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
147
|
+
// All library routes + providers are mounted here.
|
|
148
|
+
path: 'microapp',
|
|
149
|
+
loadChildren: () => import('dhomie-app').then(m => m.MICRO_APP_ROUTES(environment)),
|
|
77
150
|
},
|
|
78
151
|
];
|
|
79
152
|
```
|
|
80
153
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
| URL | Purpose |
|
|
84
|
-
|---------------------|----------------------------------------------|
|
|
85
|
-
| `/micro` | Redirects to `/micro/home` |
|
|
86
|
-
| `/micro/home` | Main micro-app view (guarded — login required) |
|
|
87
|
-
| `/micro/callback` | OAuth PKCE callback (no guard) |
|
|
154
|
+
`MICRO_APP_ROUTES(environment)` returns the full route tree and registers all library providers inside a scoped child injector — no `providers` array changes are needed in the host `AppModule` or `bootstrapApplication`.
|
|
88
155
|
|
|
89
156
|
---
|
|
90
157
|
|
|
91
|
-
##
|
|
158
|
+
## 6. Trigger login
|
|
92
159
|
|
|
93
|
-
|
|
160
|
+
Navigate to the library mount path from anywhere in the host app:
|
|
94
161
|
|
|
95
162
|
```ts
|
|
96
|
-
|
|
97
|
-
import { Component, inject, OnInit } from '@angular/core';
|
|
98
|
-
import { Router } from '@angular/router';
|
|
99
|
-
import { App } from '@capacitor/app';
|
|
100
|
-
import { IonApp, IonRouterOutlet } from '@ionic/angular/standalone';
|
|
101
|
-
|
|
102
|
-
@Component({
|
|
103
|
-
selector: 'app-root',
|
|
104
|
-
templateUrl: 'app.component.html',
|
|
105
|
-
imports: [IonApp, IonRouterOutlet],
|
|
106
|
-
})
|
|
107
|
-
export class AppComponent implements OnInit {
|
|
108
|
-
private readonly router = inject(Router);
|
|
109
|
-
|
|
110
|
-
ngOnInit(): void {
|
|
111
|
-
App.addListener('appUrlOpen', (event) => {
|
|
112
|
-
// Only handle the DHomie custom scheme.
|
|
113
|
-
if (!event.url.startsWith('thehoodapp://')) {
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
// Parse query params from the custom-scheme callback URL.
|
|
118
|
-
// e.g. com.thehood.app://micro/callback?code=abc&state=xyz
|
|
119
|
-
const callbackUrl = new URL(event.url);
|
|
120
|
-
const queryParams: Record<string, string> = {};
|
|
121
|
-
callbackUrl.searchParams.forEach((value, key) => {
|
|
122
|
-
queryParams[key] = value;
|
|
123
|
-
});
|
|
124
|
-
|
|
125
|
-
this.router.navigate(['/micro/callback'], { queryParams });
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
}
|
|
163
|
+
this.router.navigate(['/microapp']);
|
|
129
164
|
```
|
|
130
165
|
|
|
131
|
-
|
|
166
|
+
The library's guard handles the rest automatically:
|
|
167
|
+
|
|
168
|
+
- **Web** — redirects `window.location` to the OIDC authorization endpoint.
|
|
169
|
+
- **Native (iOS / Android)** — opens the system browser via `@capacitor/browser`, then listens for the `appUrlOpen` deep link.
|
|
132
170
|
|
|
133
171
|
---
|
|
134
172
|
|
|
135
|
-
##
|
|
173
|
+
## 7. Register the custom URL scheme (native only)
|
|
136
174
|
|
|
137
|
-
The
|
|
175
|
+
The native OAuth callback uses a custom URL scheme. Register it in both native projects.
|
|
138
176
|
|
|
139
177
|
### iOS — `ios/App/App/Info.plist`
|
|
140
178
|
|
|
@@ -144,7 +182,7 @@ The mobile OAuth redirect URI is `com.thehood.app://micro/callback`. You must re
|
|
|
144
182
|
<dict>
|
|
145
183
|
<key>CFBundleURLSchemes</key>
|
|
146
184
|
<array>
|
|
147
|
-
<string>
|
|
185
|
+
<string>yourapp</string>
|
|
148
186
|
</array>
|
|
149
187
|
</dict>
|
|
150
188
|
</array>
|
|
@@ -159,75 +197,58 @@ Inside the main `<activity>` tag:
|
|
|
159
197
|
<action android:name="android.intent.action.VIEW" />
|
|
160
198
|
<category android:name="android.intent.category.DEFAULT" />
|
|
161
199
|
<category android:name="android.intent.category.BROWSABLE" />
|
|
162
|
-
<data android:scheme="com.
|
|
200
|
+
<data android:scheme="com.your.app" />
|
|
163
201
|
</intent-filter>
|
|
164
202
|
```
|
|
165
203
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
## 6. Making API requests inside micro components
|
|
169
|
-
|
|
170
|
-
The library provides its own child-scoped `HttpClient`. Use the `IS_MICRO_API` context token on every request so the micro interceptor can:
|
|
171
|
-
|
|
172
|
-
- Prepend the API base URL to relative paths.
|
|
173
|
-
- Attach the Bearer token.
|
|
174
|
-
- Handle 401 errors with an automatic token refresh.
|
|
175
|
-
|
|
176
|
-
```ts
|
|
177
|
-
import { HttpClient, HttpContext } from '@angular/common/http';
|
|
178
|
-
import { inject } from '@angular/core';
|
|
179
|
-
import { IS_MICRO_API } from 'dhomie-app';
|
|
180
|
-
|
|
181
|
-
// Inside a micro component or service:
|
|
182
|
-
const http = inject(HttpClient);
|
|
183
|
-
|
|
184
|
-
http.get('/properties', {
|
|
185
|
-
context: new HttpContext().set(IS_MICRO_API, true),
|
|
186
|
-
});
|
|
187
|
-
// → sends GET https://api.dhomie.com/v1/properties
|
|
188
|
-
// with Authorization: Bearer <current_token>
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
> Requests made **without** `IS_MICRO_API` (or with it set to `false`) pass through unchanged — parent-app interceptors are not involved in micro-app calls, and vice versa.
|
|
204
|
+
Replace the scheme with the value you set in `oidc.android.redirectUri` and `oidc.ios.redirectUri`.
|
|
192
205
|
|
|
193
206
|
---
|
|
194
207
|
|
|
195
|
-
##
|
|
208
|
+
## 8. How authentication works
|
|
196
209
|
|
|
197
|
-
The
|
|
210
|
+
The `microAuthGuard` runs before every protected route under `/microapp/app`.
|
|
198
211
|
|
|
199
|
-
|
|
212
|
+
| Step | What happens |
|
|
213
|
+
|------|--------------|
|
|
214
|
+
| 1 | **Hydrate storage** — tokens are loaded from `@capacitor/preferences` into RAM (memoized). |
|
|
215
|
+
| 2 | **Check token** — if `hasValidAccessToken()` is true, navigation proceeds immediately. |
|
|
216
|
+
| 3 | **Load discovery document** — fetched once from `oidc.issuer/.well-known/openid-configuration`. |
|
|
217
|
+
| 4a | **Native** — generates PKCE URL → opens `@capacitor/browser` → listens for `appUrlOpen`. |
|
|
218
|
+
| 4b | **Web** — calls `initCodeFlow()` → browser redirects to the IdP authorization page. |
|
|
219
|
+
| 5 | **Callback** — `OAuthCallbackComponent` (web) or `appUrlOpen` (native) delivers `code` + `state` to `/microapp/login-callback`, which exchanges them for tokens. |
|
|
220
|
+
| 6 | **Token lifecycle** — proactive refresh 60 s before expiry; concurrent 401s share a single refresh lock. |
|
|
200
221
|
|
|
201
|
-
|
|
202
|
-
2. **Check token** — if `hasValidAccessToken()` returns `true`, navigation is allowed immediately.
|
|
203
|
-
3. **Load discovery document** — the OIDC `.well-known` endpoint is fetched once and cached.
|
|
204
|
-
4. **Platform split:**
|
|
205
|
-
- **Native (Capacitor)** — generates a PKCE authorization URL, registers an `appUrlOpen` listener, then opens the URL in the system browser via `@capacitor/browser`. Returns `false` (blocks navigation).
|
|
206
|
-
- **Web** — calls `initCodeFlow()` which redirects `window.location` to the authorization endpoint. Returns `false`.
|
|
207
|
-
5. **Callback** — when the auth server redirects back, `MicroCallbackComponent` (at `/micro/callback`) calls `tryLoginCodeFlow()`, exchanges the code for tokens, and stores them via `CapacitorOAuthStorage`.
|
|
208
|
-
6. **Token refresh** — `MicroRefreshSchedulerService` proactively refreshes tokens before expiry. `MicroTokenRefreshService` handles concurrent 401s with a shared refresh lock.
|
|
222
|
+
> **Cold-start edge case (native):** if the OS kills the app while the browser is open, the PKCE `code_verifier` in RAM is lost. The callback detects this and restarts the login flow from scratch. This is the accepted behavior — synchronous secure storage is not available on Capacitor.
|
|
209
223
|
|
|
210
224
|
---
|
|
211
225
|
|
|
212
|
-
##
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
|
217
|
-
|
|
218
|
-
| `
|
|
219
|
-
| `
|
|
220
|
-
| `
|
|
221
|
-
| `
|
|
222
|
-
| `
|
|
223
|
-
| `
|
|
224
|
-
| `
|
|
226
|
+
## 9. Available routes
|
|
227
|
+
|
|
228
|
+
After a successful login the library serves these routes under `/microapp/app/`:
|
|
229
|
+
|
|
230
|
+
| Route | Feature |
|
|
231
|
+
|-------------------------------|--------------------------|
|
|
232
|
+
| `apartment` | Apartment overview |
|
|
233
|
+
| `chat` | Real-time chat |
|
|
234
|
+
| `requests` | Service requests list |
|
|
235
|
+
| `new-request` | Create a request |
|
|
236
|
+
| `request-detail` | Request details |
|
|
237
|
+
| `all-schedules` | Payment schedules |
|
|
238
|
+
| `all-polls` | Community polls |
|
|
239
|
+
| `documents` | Document library |
|
|
240
|
+
| `construction-updates` | Construction news |
|
|
241
|
+
| `notifications` | Push notifications list |
|
|
242
|
+
| `profile` | User profile |
|
|
243
|
+
| `edit-profile` | Edit profile |
|
|
244
|
+
| `language-selection` | Change app language |
|
|
245
|
+
| `pdf-viewer` | In-app PDF viewer |
|
|
225
246
|
|
|
226
247
|
---
|
|
227
248
|
|
|
228
|
-
##
|
|
249
|
+
## 10. Publishing a new version
|
|
229
250
|
|
|
230
|
-
Run
|
|
251
|
+
Run from the **project root**:
|
|
231
252
|
|
|
232
253
|
```bash
|
|
233
254
|
# Without 2FA OTP
|
|
@@ -237,14 +258,16 @@ npm run publish:dhomie-app
|
|
|
237
258
|
npm run publish:dhomie-app -- 123456
|
|
238
259
|
```
|
|
239
260
|
|
|
240
|
-
The script
|
|
261
|
+
The script runs these steps automatically:
|
|
241
262
|
|
|
242
263
|
| Step | Action |
|
|
243
264
|
|------|--------|
|
|
244
265
|
| 0 | Bumps the **patch** version in `projects/dhomie-app/package.json` |
|
|
245
|
-
| 1 | Builds the library
|
|
246
|
-
|
|
|
247
|
-
|
|
|
266
|
+
| 1 | Builds the library (`ng build dhomie-app --configuration production`) |
|
|
267
|
+
| 1b | Compiles Tailwind CSS → `dist/dhomie-app/styles/index.css` |
|
|
268
|
+
| 1c | Copies fonts → `dist/dhomie-app/styles/fonts/` |
|
|
269
|
+
| 2 | _(no-op)_ Environment is injected at runtime via `MICRO_ENV` DI token |
|
|
270
|
+
| 3 | Removes stale source map and `.npmrc` from `dist/dhomie-app` |
|
|
248
271
|
| 4 | Publishes `./dist/dhomie-app` to npm with `--access public` |
|
|
249
272
|
|
|
250
|
-
To bump
|
|
273
|
+
To bump **minor** or **major** version, edit `projects/dhomie-app/package.json` manually before running the script.
|
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/styles/index.css
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
|
|
2
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-scroll-snap-strictness:proximity;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@font-face{font-family:Montserrat arm;src:url(./fonts/Montserratarm-Thin.otf)format("opentype");font-weight:100;font-display:swap}@font-face{font-family:Montserrat arm;src:url(./fonts/Montserratarm-ExtraLight.otf)format("opentype");font-weight:200;font-display:swap}@font-face{font-family:Montserrat arm;src:url(./fonts/Montserratarm-Light.otf)format("opentype");font-weight:300;font-display:swap}@font-face{font-family:Montserrat arm;src:url(./fonts/Montserratarm-Regular.otf)format("opentype");font-weight:400;font-display:swap}@font-face{font-family:Montserrat arm;src:url(./fonts/Montserratarm-Medium.otf)format("opentype");font-weight:500;font-display:swap}@font-face{font-family:Montserrat arm;src:url(./fonts/Montserratarm-SemiBold.otf)format("opentype");font-weight:600;font-display:swap}@font-face{font-family:Montserrat arm;src:url(./fonts/Montserratarm-Bold.otf)format("opentype");font-weight:700;font-display:swap}@font-face{font-family:Montserrat arm;src:url(./fonts/Montserratarm-ExtraBold.otf)format("opentype");font-weight:800;font-display:swap}@font-face{font-family:Montserrat arm;src:url(./fonts/Montserratarm-Black.otf)format("opentype");font-weight:900;font-display:swap}:root{--dh-color-primary:#0f0f10;--dh-color-secondary:#f71dda;--dh-color-text-main:#212121;--dh-color-text-secondary:#7b7b7b;--dh-color-bg-main:#fff;--dh-color-surface:#fbfbfb;--dh-color-surface-elevated:#f5f5f5;--dh-color-overlay:#ffffffb3;--dh-color-border:#dfdfdf;--dh-color-border-general:#ededed;--dh-color-badge-ad:#929292cc;--dh-color-chip-bg:#e5e7eb;--dh-color-chip-text:#374151;--dh-color-chat-bubble-sent:#eaecf5;--dh-color-chat-bubble-received:#f5f5f4;--dh-color-chat-role-badge:#eef4ff;--dh-color-text-placeholder:#aaa;--dh-radius-md:12px;--dh-radius-lg:16px;--dh-spacing-sm:10px;--dh-spacing-md:12px;--dh-spacing-lg:19px;--dh-spacing-btn-outlined:15px;--dh-font-family:"Montserrat arm", sans-serif;--dh-font-size-btn-primary:18px;--dh-font-size-btn-outlined:16px;--dh-letter-spacing:-.02em}.dark{--dh-color-primary:#f0f0f0;--dh-color-secondary:#f71dda;--dh-color-text-main:#efefef;--dh-color-text-secondary:#9a9a9a;--dh-color-bg-main:#000;--dh-color-surface:#1c1c1e;--dh-color-surface-elevated:#2c2c2e;--dh-color-overlay:#1e1e1ecc;--dh-color-border:#3a3a3c;--dh-color-border-general:#2c2c2e;--dh-color-badge-ad:#505050cc;--dh-color-chip-bg:#3a3a3c;--dh-color-chip-text:#d1d5db;--dh-color-chat-bubble-sent:#2a2c3a;--dh-color-chat-bubble-received:#252525;--dh-color-chat-role-badge:#1a2a40;--dh-color-text-placeholder:#666}.light{--dh-color-primary:#0f0f10;--dh-color-secondary:#f71dda;--dh-color-text-main:#212121;--dh-color-text-secondary:#7b7b7b;--dh-color-bg-main:#fff;--dh-color-surface:#fbfbfb;--dh-color-surface-elevated:#f5f5f5;--dh-color-overlay:#ffffffb3;--dh-color-border:#dfdfdf;--dh-color-border-general:#ededed;--dh-color-badge-ad:#929292cc;--dh-color-chip-bg:#e5e7eb;--dh-color-chip-text:#374151;--dh-color-chat-bubble-sent:#eaecf5;--dh-color-chat-bubble-received:#f5f5f4;--dh-color-chat-role-badge:#eef4ff;--dh-color-text-placeholder:#aaa;color-scheme:light}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-500:oklch(63.7% .237 25.331);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-900:oklch(21% .034 264.665);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-300:oklch(87% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-normal:0em;--leading-normal:1.5;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-dh-text-main:var(--dh-color-text-main);--color-dh-text-secondary:var(--dh-color-text-secondary);--color-dh-bg-main:var(--dh-color-bg-main);--color-dh-surface:var(--dh-color-surface);--color-dh-border-general:var(--dh-color-border-general);--radius-dh-lg:var(--dh-radius-lg)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}body{font-family:var(--dh-font-family)}}@layer components;@layer utilities{.dh-ad-banner-badge{pointer-events:none;right:calc(var(--spacing) * 2);bottom:calc(var(--spacing) * 2);position:absolute}.pointer-events-none{pointer-events:none}.dh-select-control{min-width:calc(var(--spacing) * 0);font-family:var(--dh-font-family);--tw-leading:18px;--tw-font-weight:var(--font-weight-normal);font-size:12px;line-height:18px;font-weight:var(--font-weight-normal);--tw-tracking:0;letter-spacing:0;--background:transparent;--border-color:transparent;--color:var(--dh-color-text-main,#212121);--placeholder-color:var(--dh-color-text-main,#212121);--padding-start:0;--padding-end:24px;--padding-top:0;--padding-bottom:0;--highlight-color-focused:transparent;--highlight-color-valid:transparent;--highlight-color-invalid:transparent;--min-height:var(--dh-select-height,48px);min-height:var(--dh-select-height,48px);height:var(--dh-select-height,48px);flex:1}.dh-select-control.select-fill-outline{min-height:var(--dh-select-height,48px);height:var(--dh-select-height,48px);--min-height:var(--dh-select-height,48px)}.dh-select-control::part(text){white-space:normal;line-height:18px}.dh-select-control::part(icon){color:var(--dh-color-text-main,#212121);opacity:1;visibility:visible;font-size:20px;display:block}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.dh-carousel-play-overlay{inset:calc(var(--spacing) * 0);justify-content:center;align-items:center;display:flex;position:absolute}.dh-new-request-file-remove{top:calc(var(--spacing) * 0);right:calc(var(--spacing) * 1);position:absolute;width:calc(var(--spacing) * 6)!important;height:calc(var(--spacing) * 6)!important;min-width:calc(var(--spacing) * 0)!important;padding:calc(var(--spacing) * 0)!important}.dh-timeline-line{top:calc(var(--spacing) * 4);bottom:calc(var(--spacing) * 0);background-color:var(--dh-color-primary);width:2px;position:absolute}.dh-media-card-play-btn{top:150px;left:calc(var(--spacing) * 4);height:calc(var(--spacing) * 11);width:calc(var(--spacing) * 16);border-style:var(--tw-border-style);padding-inline:calc(var(--spacing) * 5);padding-block:calc(var(--spacing) * 2);--tw-shadow:0px 4px 4px 0px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-backdrop-blur:blur(13px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);background:var(--dh-color-overlay);border-width:1px;border-color:var(--dh-color-border-general);border-radius:16px;justify-content:center;align-items:center;display:flex;position:absolute}.dh-bottom-nav__badge{top:calc(var(--spacing) * -1.5);position:absolute;left:13px}.dh-top-header{top:calc(var(--spacing) * 0);z-index:20;width:100%;max-width:var(--container-md);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);background-color:var(--dh-color-bg-main);margin-inline:auto;position:sticky}@supports (color:color-mix(in lab, red, red)){.dh-top-header{background-color:color-mix(in srgb, var(--dh-color-bg-main) 95%, transparent)}}.dh-top-header{border-bottom:1px solid var(--dh-color-border-general)}@supports (color:color-mix(in lab, red, red)){.dh-top-header{border-bottom:1px solid color-mix(in srgb, var(--dh-color-border-general) 80%, transparent)}}.dh-requests-tabs{top:calc(var(--spacing) * 0);z-index:10;gap:calc(var(--spacing) * 3);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);background-color:var(--dh-color-overlay);display:flex;position:sticky}.dh-chat-attach-menu{bottom:100%;left:calc(var(--spacing) * 0);z-index:10;margin-bottom:calc(var(--spacing) * 2);border-radius:var(--radius-2xl);border-style:var(--tw-border-style);border-width:1px;border-color:var(--dh-color-border-general);background-color:var(--dh-color-bg-main);--tw-shadow:0 4px 20px var(--tw-shadow-color,#00000014);min-width:180px;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);flex-direction:column;display:flex;position:absolute;overflow:hidden}.dh-new-request-actions{bottom:calc(var(--spacing) * 0);gap:calc(var(--spacing) * 4);background-color:var(--dh-color-bg-main);width:100%;padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);display:flex;position:absolute}.dh-bottom-nav__button{height:calc(var(--spacing) * 14);border-radius:var(--radius-xl);--tw-outline-style:none;outline-style:none;justify-content:center;align-items:center;width:100%;transition-property:none;display:flex;position:relative}.dh-timeline-connector{width:calc(var(--spacing) * 4);flex-shrink:0;justify-content:center;align-self:stretch;display:flex;position:relative}.dh-bottom-nav__icon-wrap{justify-content:center;align-items:center;display:inline-flex;position:relative}.dh-carousel-media{aspect-ratio:257/210;border-radius:var(--radius-xl);background-color:var(--dh-color-surface-elevated);width:220px;position:relative;overflow:hidden}.dh-ad-banner{aspect-ratio:11/4;border-radius:var(--radius-xl);width:100%;position:relative;overflow:hidden}.dh-media-card-media{aspect-ratio:257/210;border-radius:var(--radius-xl);border-style:var(--tw-border-style);border-width:1px;border-color:var(--dh-color-border-general);background-color:var(--dh-color-surface-elevated);position:relative;overflow:hidden}.dh-new-request-file-thumb{border-radius:var(--radius-xl);flex-shrink:0;width:72px;height:72px;position:relative;overflow:hidden}.dh-carousel-slide{cursor:pointer;scroll-snap-align:start;flex-shrink:0;width:220px;position:relative}.dh-carousel{width:100%;position:relative}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-\[6px\]{top:6px}.left-\[24px\]{left:24px}.z-10{z-index:10}.dh-poll-card-progress-bar{align-items:center;gap:calc(var(--spacing) * 2);border-top-left-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl);padding:calc(var(--spacing) * 3);color:var(--color-white);background-color:#212121;grid-row-start:1;grid-column-start:1;display:flex;overflow:hidden;border-radius:var(--radius-xl)!important}.dh-poll-card-result-row{align-items:center;gap:calc(var(--spacing) * 2);border-radius:var(--radius-xl);background-color:var(--color-white);padding:calc(var(--spacing) * 3);color:#212121;grid-row-start:1;grid-column-start:1;display:flex}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.dh-apartment-details-modal-apt-subtitle{font-family:var(--dh-font-family);color:var(--dh-color-text-secondary);letter-spacing:var(--dh-letter-spacing);margin:0;font-size:13px;font-weight:400;line-height:18px}.dh-apartment-details-modal-apt-title{font-family:var(--dh-font-family);color:#212121;letter-spacing:.2px;margin:0;font-size:18px;font-weight:600;line-height:1.4}.dh-profile-body{margin-inline:auto;margin-top:calc(var(--spacing) * 6);gap:calc(var(--spacing) * 4);border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl);border-style:var(--tw-border-style);padding:calc(var(--spacing) * 4);background:var(--background-Second-layer,#fbfbfb);border-width:1px;border-color:#ededed;flex-direction:column;display:flex}.dh-bottom-nav__list{gap:calc(var(--spacing) * 1);grid-template-columns:repeat(4,minmax(0,1fr));max-width:430px;margin-inline:auto;display:grid}.dh-all-polls-container{gap:calc(var(--spacing) * 4);max-width:430px;padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 6);flex-direction:column;margin-inline:auto;display:flex}.dh-apartment-container{gap:calc(var(--spacing) * 6);max-width:430px;padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 6);flex-direction:column;margin-inline:auto;display:flex}.dh-bottom-nav__button--active{padding-inline:calc(var(--spacing) * 1);padding-block:calc(var(--spacing) * 4);color:var(--dh-color-primary);margin-inline:auto;border:1px solid #ededed!important;border-radius:12px!important}.dh-all-schedules-year-label{margin-top:calc(var(--spacing) * 4);margin-bottom:calc(var(--spacing) * 1);font-family:var(--dh-font-family);color:var(--dh-color-text-secondary);font-size:12px}.dh-all-schedules-summary-card{margin-top:calc(var(--spacing) * 4);gap:calc(var(--spacing) * 4);border-radius:var(--radius-2xl);border-style:var(--tw-border-style);padding:calc(var(--spacing) * 4);background-color:#fbfbfb;border-width:1px;border-color:#ededed;flex-direction:column;display:flex}.dh-notifications-card-body{margin-top:calc(var(--spacing) * 1);gap:calc(var(--spacing) * 3.5);flex-direction:column;display:flex}.dh-document-item__meta-row{margin-top:calc(var(--spacing) * 1);align-items:center;gap:calc(var(--spacing) * 2);flex-wrap:wrap;display:flex}.dh-carousel-dots{margin-top:calc(var(--spacing) * 2);justify-content:center;align-items:center;gap:calc(var(--spacing) * 1.5);display:flex}.dh-media-preview-dots{margin-top:calc(var(--spacing) * 1);justify-content:center;align-items:center;gap:calc(var(--spacing) * 1.5);display:flex}.dh-timeline-dot{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4);background-color:var(--dh-color-primary);border-radius:3.40282e38px;margin-top:2px}.dh-property-card-desc{margin-top:calc(var(--spacing) * 1);font-family:var(--dh-font-family);--tw-leading:18px;color:var(--color-dh-text-secondary);font-size:13px;line-height:18px}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.dh-profile-header-card{margin-bottom:calc(var(--spacing) * 6);border-radius:var(--radius-xl);width:100%;height:70px;padding-inline:calc(var(--spacing) * 4);background:var(--Icon-Main,#0f0f10);justify-content:space-between;align-items:center;padding-block:15px;display:flex;box-shadow:0 24px 64px #00000026}.dh-profile-dignisi-heading{margin-bottom:calc(var(--spacing) * 1);--tw-leading:1;--tw-font-weight:var(--font-weight-medium);font-family:Montserrat arm;font-size:14px;line-height:1;font-weight:var(--font-weight-medium);--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal);color:#fbfbfb}.dh-rd-response-label{margin-bottom:calc(var(--spacing) * 4);font-family:var(--dh-font-family);--tw-leading:17px;--tw-font-weight:var(--font-weight-medium);font-size:13px;line-height:17px;font-weight:var(--font-weight-medium);--tw-tracking:.01em;letter-spacing:.01em;color:#212121}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.dh-notifications-card-arrow{margin-left:calc(var(--spacing) * 2);flex-shrink:0}.dh-request-categories-card{width:100%;display:block}.dh-request-categories-card ion-button{height:auto!important;min-height:unset!important}.dh-request-categories-card ion-button::part(native){text-align:left;white-space:normal;border:.5px solid #ededed;border-radius:16px;flex-direction:column;align-items:flex-start;gap:32px;width:164px;height:140px;display:flex;box-shadow:0 4px 24px #0000001a;padding:16px!important}.dh-btn-base{display:inline-block}.dh-btn-base ion-button{--border-radius:var(--dh-radius-md);--ripple-color:transparent;width:100%;font-family:var(--dh-font-family);letter-spacing:var(--dh-letter-spacing);--dh-btn-height:48px;--dh-btn-padding-y:14px;min-height:var(--dh-btn-height);height:var(--dh-btn-height);--min-height:var(--dh-btn-height);--padding-top:var(--dh-btn-padding-y);--padding-bottom:var(--dh-btn-padding-y);font-weight:400}.dh-select-shell{align-items:center;gap:calc(var(--spacing) * 2.5);border-radius:var(--radius-xl);border-style:var(--tw-border-style);border-width:1px;border-color:var(--dh-color-border-general);background-color:var(--dh-color-bg-main);padding-inline:calc(var(--spacing) * 3);min-height:var(--dh-select-height,48px);height:var(--dh-select-height,48px);display:flex}.dh-chat-thread-unread{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);background-color:var(--dh-color-primary);font-family:var(--dh-font-family);color:var(--dh-color-bg-main);border-radius:3.40282e38px;flex-shrink:0;justify-content:center;align-self:center;align-items:center;font-size:11px;display:flex}.dh-chat-thread-avatar-placeholder{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12);border-radius:var(--dh-radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--dh-color-border-general);background-color:var(--dh-color-surface);color:var(--dh-color-text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.dh-chat-create-company-icon{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9);border-radius:var(--radius-lg);background-color:var(--dh-color-surface);flex-shrink:0;justify-content:center;align-items:center;display:flex}.dh-payment-item-step{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9);font-family:var(--dh-font-family);--tw-font-weight:var(--font-weight-semibold);font-size:14px;font-weight:var(--font-weight-semibold);--tw-tracking:var(--dh-letter-spacing);letter-spacing:var(--dh-letter-spacing);border-radius:3.40282e38px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.dh-icon-el{width:var(--dh-icon-size,24px);height:var(--dh-icon-size,24px);color:var(--dh-icon-color,currentColor);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.dh-icon-el svg{width:100%;height:100%;display:block}.dh-request-categories-card-content{flex-direction:column;justify-content:space-between;width:100%;height:100%;display:flex}.dh-avatar{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12);border-radius:var(--radius-xl);background-color:var(--dh-color-surface-elevated);justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.dh-media-preview-close-btn{height:calc(var(--spacing) * 10);width:calc(var(--spacing) * 10);border-radius:var(--radius-xl);border-style:var(--tw-border-style);border-width:1px;border-color:#fff3;justify-content:center;align-items:center;display:flex}@supports (color:color-mix(in lab, red, red)){.dh-media-preview-close-btn{border-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.dh-media-preview-close-btn{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.dh-media-preview-close-btn{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.dh-media-preview-close-btn{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.dh-icon-btn{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));justify-content:center;align-items:center;display:inline-flex}.dh-icon-btn:focus{--tw-outline-style:none;outline-style:none}.dh-icon-btn:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.dh-icon-btn{--dh-icon-btn-size:48px;width:var(--dh-icon-btn-size);height:var(--dh-icon-btn-size);border-color:#0000;border-style:solid!important;border-width:1px!important;border-radius:12px!important}.dh-chat-create-resident-avatar{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9);border-radius:var(--radius-lg);background-color:var(--dh-color-surface);justify-content:center;align-items:center;display:flex}.dh-carousel-play-btn{height:calc(var(--spacing) * 12);width:calc(var(--spacing) * 12);--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);background:var(--dh-color-overlay);border:1px solid var(--dh-color-border-general);border-radius:3.40282e38px;justify-content:center;align-items:center;display:flex}.dh-request-categories-card-icon{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10);border-radius:var(--radius-xl);justify-content:center;align-items:center;display:flex}.dh-document-item__icon{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8);color:var(--dh-color-text-main);justify-content:center;align-items:center;display:inline-flex}.dh-apartment-details-modal-inner{flex-direction:column;justify-content:space-between;gap:20px;height:100%;display:flex}.dh-chat{background-color:var(--dh-color-bg-main);flex-direction:column;justify-content:space-between;height:100%;display:flex}.dh-chat-empty-state{gap:calc(var(--spacing) * 4);height:100%;padding-inline:calc(var(--spacing) * 4);padding-top:calc(var(--spacing) * 4);padding-bottom:calc(var(--spacing) * 6);flex-direction:column;display:flex}.dh-chat-page{background-color:var(--dh-color-surface);flex-direction:column;height:100%;display:flex}.dh-image-preview{background-color:var(--color-black);flex-direction:column;height:100%;display:flex}.dh-modal-wrapper{background-color:var(--dh-color-bg-main);flex-direction:column;height:100%;display:flex}.dh-media-preview{background:#000;flex-direction:column;height:100%;display:flex}.dh-chat-create-search-box{height:calc(var(--spacing) * 10);align-items:center;gap:calc(var(--spacing) * 2);border-radius:var(--radius-lg);border-style:var(--tw-border-style);padding-inline:calc(var(--spacing) * 4);border-width:1px;border-color:#dfdfdf;padding-block:10px;display:flex}.dh-chat-messages{gap:calc(var(--spacing) * 6);padding-inline:calc(var(--spacing) * 4);padding-top:calc(var(--spacing) * 4);padding-bottom:calc(var(--spacing) * 6);flex-direction:column;flex:1;min-height:0;max-height:calc(100vh - 193px);display:flex;overflow-y:auto}.dh-chat-shell{min-height:calc(var(--spacing) * 0);background-color:var(--dh-color-bg-main);flex-direction:column;flex:1;display:flex}.dh-chat-input-wrap{border-radius:var(--dh-radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--dh-color-border-general);background-color:var(--dh-color-bg-main);min-height:44px;padding-inline:calc(var(--spacing) * 4);flex:1;align-items:center;padding-block:10px;display:flex}.dh-media-preview-slide{scroll-snap-align:start;flex-shrink:0;justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.dh-poll-card-option-btn{cursor:pointer;align-items:center;gap:calc(var(--spacing) * 2);border-style:var(--tw-border-style);background-color:var(--color-white);text-align:left;width:100%;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;border-width:1px;border-color:#ededed;transition-duration:.2s;display:flex;border-radius:var(--radius-xl)!important;padding:calc(var(--spacing) * 3)!important}.dh-carousel-track{scroll-snap-type:x var(--tw-scroll-snap-strictness);--tw-scroll-snap-strictness:mandatory;gap:calc(var(--spacing) * 4);scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;width:100%;display:flex;overflow-x:auto}.dh-carousel-track::-webkit-scrollbar{display:none}.dh-request-categories-card-top{justify-content:space-between;align-items:flex-start;width:100%;display:flex}.dh-chat-attachment-doc{align-items:center;gap:calc(var(--spacing) * 2);border-radius:var(--radius-xl);border-style:var(--tw-border-style);border-width:1px;border-color:var(--dh-color-border-general);text-align:left;width:100%;display:flex;padding-inline:calc(var(--spacing) * 2)!important;padding-block:calc(var(--spacing) * 2)!important}.dh-profile-apt-item{align-items:center;gap:calc(var(--spacing) * 4);border-radius:var(--radius-xl);background-color:var(--color-white);text-align:left;width:100%;display:flex;border:.5px solid var(--Border-General,#ededed)!important;border-radius:12px!important;padding:12px 16px!important}.dh-lang-sel-item,.dh-profile-lang-item{align-items:center;gap:calc(var(--spacing) * 4);border-radius:var(--radius-xl);text-align:left;width:100%;display:flex;border:.5px solid var(--Border-General,#ededed)!important;background:var(--background-Second-layer,#fbfbfb)!important;border-radius:12px!important;padding:12px 16px!important}.dh-document-item{align-items:flex-start;gap:calc(var(--spacing) * 3);background-color:var(--dh-color-bg-main);width:100%;padding:calc(var(--spacing) * 3);text-align:left;border-bottom:.5px solid var(--dh-color-border-general);display:flex}.dh-chat-create-company-box{align-items:center;gap:calc(var(--spacing) * 3);background-color:var(--color-white);text-align:left;width:100%;display:flex;padding-inline:calc(var(--spacing) * 4)!important;padding-block:calc(var(--spacing) * 4)!important;border-bottom:.5px solid #ededed!important}.dh-chat-create-resident-btn{align-items:center;gap:calc(var(--spacing) * 3);text-align:left;width:100%;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5);color:var(--dh-color-text-main);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));display:flex}.dh-chat-create-resident-btn:active{background-color:var(--dh-color-surface)}.dh-info-row{gap:calc(var(--spacing) * 3);width:100%;display:flex}.dh-chat-create-resident-label{border-bottom-style:var(--tw-border-style);width:100%;padding-block:calc(var(--spacing) * 3);border-color:#ededed;border-bottom-width:1px;display:block}.dh-btn-full{width:100%;display:block}.dh-chat-header-info{min-width:calc(var(--spacing) * 0);align-items:center;gap:calc(var(--spacing) * 1);flex-direction:column;flex:1;display:flex}.dh-timeline-content{min-width:calc(var(--spacing) * 0);gap:calc(var(--spacing) * 1);padding-bottom:calc(var(--spacing) * 8);flex-direction:column;flex:1;display:flex}.dh-chat-thread-content{min-width:calc(var(--spacing) * 0);gap:calc(var(--spacing) * 1);flex-direction:column;flex:1;display:flex}.dh-property-card-body{min-width:calc(var(--spacing) * 0);gap:calc(var(--spacing) * 2);flex-direction:column;flex:1;display:flex}.dh-request-item-body{min-width:calc(var(--spacing) * 0);gap:calc(var(--spacing) * 1);flex-direction:column;flex:1;display:flex}.dh-apartment-details-modal-header-info{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.dh-notifications-card-meta{min-width:calc(var(--spacing) * 0);align-items:flex-end;gap:calc(var(--spacing) * 2);flex:1;display:flex}.dh-media-preview-track{scroll-snap-type:x var(--tw-scroll-snap-strictness);--tw-scroll-snap-strictness:mandatory;scrollbar-width:none;-ms-overflow-style:none;flex:1;display:flex;overflow-x:auto}.dh-media-preview-track::-webkit-scrollbar{display:none}.dh-layout-toolbar-select{gap:calc(var(--spacing) * 2);flex-direction:column;flex:1;display:flex}.dh-payment-item-content{justify-content:space-between;align-items:center;gap:calc(var(--spacing) * 2);flex:1;display:flex}.dh-image-preview-body{flex:1;justify-content:center;align-items:center;display:flex;overflow:hidden}.dh-poll-card-option-label{-webkit-line-clamp:2;font-family:Montserrat arm;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);--tw-tracking:-.15px;letter-spacing:-.15px;color:#212121;-webkit-box-orient:vertical;flex:1;display:-webkit-box;overflow:hidden}.dh-profile-apt-address{-webkit-line-clamp:2;--tw-leading:17px;--tw-font-weight:var(--font-weight-medium);font-family:Montserrat arm;font-size:13px;line-height:17px;font-weight:var(--font-weight-medium);--tw-tracking:.01em;letter-spacing:.01em;color:#212121;-webkit-box-orient:vertical;flex:1;display:-webkit-box;overflow:hidden}.dh-media-card{cursor:pointer;gap:calc(var(--spacing) * 2);border-radius:var(--radius-xl);flex-direction:column;flex-shrink:0;display:flex}.dh-apartment-details-modal-footer-info{flex-direction:column;flex-shrink:0;gap:6px;padding:8px 16px;display:flex}.dh-apartment-details-modal-dots{flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:0 16px;display:flex}.dh-apartment-details-modal-header{flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 16px;display:flex}.dh-chat-input-bar{align-items:flex-end;gap:calc(var(--spacing) * 2);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);--tw-backdrop-blur:blur(6.5px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);background-color:var(--dh-color-bg-main);flex-shrink:0;display:flex}@supports (color:color-mix(in lab, red, red)){.dh-chat-input-bar{background-color:color-mix(in srgb, var(--dh-color-bg-main) 70%, transparent)}}.dh-edit-profile-phone-prefix{align-items:center;gap:calc(var(--spacing) * 1);padding-inline:calc(var(--spacing) * 3);border-right:1px solid #ffffffb2;flex-shrink:0;padding-block:14px;display:flex;background:#fbfbfb!important}.dh-top-header-row{grid-template-columns:44px 1fr 44px;align-items:center;display:grid}.dh-request-categories-grid{gap:calc(var(--spacing) * 3);padding:calc(var(--spacing) * 4);grid-template-columns:repeat(2,minmax(0,1fr));place-self:center;display:grid}.dh-chat-bubble-received{align-items:flex-start;gap:calc(var(--spacing) * 1);border-style:var(--tw-border-style);border-width:1px;border-color:var(--dh-color-border-general);background-color:var(--dh-color-chat-bubble-received);padding-block:calc(var(--spacing) * 2);padding-right:calc(var(--spacing) * 4);padding-left:calc(var(--spacing) * 2);border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-right-radius:20px;flex-direction:column;display:flex}.dh-chat-bubble-sent{align-items:flex-end;gap:calc(var(--spacing) * 1);background-color:var(--dh-color-chat-bubble-sent);padding-block:calc(var(--spacing) * 2);padding-right:calc(var(--spacing) * 2);padding-left:calc(var(--spacing) * 2);border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;flex-direction:column;display:flex}.dh-rd-rating-block{align-items:flex-start;gap:calc(var(--spacing) * 2);border-top-style:var(--tw-border-style);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 8);border-color:#ededed;border-top-width:1px;flex-direction:column;display:flex}.dh-contact-modal-body{align-items:center;gap:calc(var(--spacing) * 6);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 6);flex-direction:column;display:flex}.dh-contact-modal-info{align-items:center;gap:calc(var(--spacing) * 1);text-align:center;flex-direction:column;display:flex}.dh-apartment-installment-card{gap:calc(var(--spacing) * 4);border-style:var(--tw-border-style);border-width:1px;border-color:var(--dh-color-border-general);background-color:var(--dh-color-bg-main);padding:calc(var(--spacing) * 4);border-radius:20px;flex-direction:column;display:flex}.dh-info-card{gap:calc(var(--spacing) * 4);border-style:var(--tw-border-style);border-width:1px;border-color:var(--dh-color-border-general);background-color:var(--dh-color-surface);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 6);border-radius:20px;flex-direction:column;display:flex}.dh-poll-card{gap:calc(var(--spacing) * 4);border-radius:var(--radius-xl);border-style:var(--tw-border-style);padding:calc(var(--spacing) * 4);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;border-width:1px;flex-direction:column;transition-duration:.2s;display:flex}.dh-edit-profile-body{gap:calc(var(--spacing) * 4);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 6);flex-direction:column;display:flex}.dh-lang-sel-wrapper{gap:calc(var(--spacing) * 2);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 6);flex-direction:column;display:flex}.dh-rd-section{gap:calc(var(--spacing) * 2);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);flex-direction:column;display:flex}.dh-requests-empty-state{gap:calc(var(--spacing) * 8);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 12);flex-direction:column;display:flex}.dh-chat-poll-section{gap:calc(var(--spacing) * 3);padding-inline:calc(var(--spacing) * 4);padding-top:calc(var(--spacing) * 4);padding-bottom:calc(var(--spacing) * 3);flex-direction:column;display:flex}.dh-edit-profile-footer{gap:calc(var(--spacing) * 3);padding-inline:calc(var(--spacing) * 4);padding-top:calc(var(--spacing) * 4);padding-bottom:calc(var(--spacing) * 8);flex-direction:column;display:flex}.dh-media-preview-footer{gap:calc(var(--spacing) * 2);padding-inline:calc(var(--spacing) * 4);padding-top:calc(var(--spacing) * 4);padding-bottom:max(env(safe-area-inset-bottom), 16px);flex-direction:column;display:flex}.dh-rd-info-block{gap:calc(var(--spacing) * 1);padding-inline:calc(var(--spacing) * 4);padding-top:calc(var(--spacing) * 4);padding-bottom:calc(var(--spacing) * 3);flex-direction:column;display:flex}.dh-rd-subject-block{gap:calc(var(--spacing) * 1);padding-inline:calc(var(--spacing) * 4);padding-top:calc(var(--spacing) * 3);padding-bottom:calc(var(--spacing) * 3);flex-direction:column;display:flex}.dh-chat-empty-state-content{gap:calc(var(--spacing) * 8);padding-top:calc(var(--spacing) * 6);flex-direction:column;display:flex}.dh-chat-create-list-inner{gap:calc(var(--spacing) * 3);padding-bottom:calc(var(--spacing) * 4);flex-direction:column;display:flex}.dh-apartment-details-modal-carousel{flex-direction:column;gap:8px;display:flex}.dh-apartment-doc-list{gap:calc(var(--spacing) * 3);flex-direction:column;display:flex}.dh-apartment-installment-header{gap:calc(var(--spacing) * 1);flex-direction:column;display:flex}.dh-apartment-installment-items{gap:calc(var(--spacing) * 3);flex-direction:column;display:flex}.dh-apartment-section{gap:calc(var(--spacing) * 4);flex-direction:column;display:flex}.dh-chat-empty-state-text{gap:calc(var(--spacing) * 2);flex-direction:column;display:flex}.dh-edit-profile-field,.dh-info-card-section,.dh-notifications-card-inner,.dh-payment-item-main{gap:calc(var(--spacing) * 1);flex-direction:column;display:flex}.dh-profile-apt-list,.dh-requests-empty-state-text{gap:calc(var(--spacing) * 2);flex-direction:column;display:flex}.dh-chat-create-residents{border-radius:var(--radius-xl);background-color:var(--dh-color-bg-main);flex-direction:column;display:flex}.dh-chat-create-floor-section{padding:calc(var(--spacing) * 4);flex-direction:column;display:flex}.dh-notifications-list{padding-block:calc(var(--spacing) * 2);flex-direction:column;display:flex}.dh-media-card-meta{align-items:center;gap:calc(var(--spacing) * 2);font-family:var(--dh-font-family);--tw-leading:18px;--tw-font-weight:var(--font-weight-normal);font-size:13px;line-height:18px;font-weight:var(--font-weight-normal);--tw-tracking:0;letter-spacing:0;color:var(--dh-color-text-secondary);flex-wrap:wrap;display:flex}.dh-media-preview-meta{align-items:center;gap:calc(var(--spacing) * 2);font-family:var(--dh-font-family);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-white);opacity:.5;flex-wrap:wrap;display:flex}.dh-rd-image-grid{gap:calc(var(--spacing) * 2);flex-wrap:nowrap;display:flex;overflow-x:auto}.dh-new-request-files{gap:calc(var(--spacing) * 2);padding-inline:calc(var(--spacing) * 4);padding-bottom:calc(var(--spacing) * 2);flex-wrap:wrap;display:flex}.dh-section-header{justify-content:space-between;align-items:center;gap:calc(var(--spacing) * 3);display:flex}.dh-contact-modal-icon-wrap{background-color:var(--dh-color-surface-elevated);padding:calc(var(--spacing) * 5);border-radius:3.40282e38px;justify-content:center;align-items:center;display:flex}.dh-chat-contact-role{background-color:var(--dh-color-chat-role-badge);padding-inline:calc(var(--spacing) * 2);border-radius:6px;justify-content:center;align-items:center;padding-block:2px;display:flex}.dh-modal-header{padding:var(--dh-spacing-lg) var(--dh-spacing-lg) var(--dh-spacing-md);border-bottom:1px solid var(--dh-color-border-general);justify-content:space-between;align-items:center;display:flex}.dh-media-preview-header{padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3);padding-top:max(env(safe-area-inset-top), 12px);justify-content:space-between;align-items:center;display:flex}.dh-new-request-document-row{padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);padding-top:calc(var(--spacing) * 0);justify-content:space-between;align-items:center;display:flex}.dh-profile-state{padding-block:calc(var(--spacing) * 12);justify-content:center;align-items:center;display:flex}.dh-badge{vertical-align:middle;font-family:var(--dh-font-family);--tw-font-weight:var(--font-weight-medium);font-size:10px;font-weight:var(--font-weight-medium);--background:var(--dh-color-primary);--color:#fff;justify-content:center;align-items:center;display:flex}.dh-poll-card-header{--tw-leading:15px;--tw-tracking:.617px;letter-spacing:.617px;white-space:nowrap;text-transform:uppercase;justify-content:space-between;align-items:center;font-family:Montserrat arm;font-size:10px;line-height:15px;display:flex}.dh-all-schedules-summary-row{justify-content:space-between;align-items:center;display:flex}.dh-notifications-card-header{justify-content:space-between;align-items:flex-end;display:flex}.dh-edit-profile-phone-row{align-items:center;gap:calc(var(--spacing) * 2);border-radius:var(--radius-xl);border:1px solid #ffffffb2;border-radius:12px;display:flex;overflow:hidden;background:#fbfbfb!important}.dh-property-card{align-items:flex-start;gap:calc(var(--spacing) * 3);border-radius:var(--radius-dh-lg);background-color:var(--color-dh-bg-main);color:var(--color-dh-text-main);display:flex}@media (prefers-color-scheme:dark){.dh-property-card{background-color:var(--color-dh-surface)}}.dh-new-request-info-row{align-items:center;gap:calc(var(--spacing) * 2);border-top-style:var(--tw-border-style);border-top-width:1px;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--dh-color-border-general);background-color:var(--dh-color-surface);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3);display:flex}.dh-chat-attach-option{align-items:center;gap:calc(var(--spacing) * 2);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--dh-color-border-general);text-align:left;font-family:var(--dh-font-family);--tw-leading:calc(var(--spacing) * 5);font-size:15px;line-height:calc(var(--spacing) * 5);color:var(--dh-color-text-main);display:flex}.dh-chat-attach-option:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.dh-chat-attach-option:active{background-color:var(--dh-color-surface)}.dh-chat-attach-option{padding:8px!important}.dh-new-request-theme-row{align-items:center;gap:calc(var(--spacing) * 2);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--dh-color-border-general);background-color:var(--dh-color-surface);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);--tw-tracking:.14px;letter-spacing:.14px;font-size:14px;display:flex}.dh-chat-header{align-items:center;gap:calc(var(--spacing) * 4);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--dh-color-border-general);background-color:var(--dh-color-bg-main);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);display:flex}.dh-chat-thread-item,.dh-request-item{align-items:flex-start;gap:calc(var(--spacing) * 4);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--dh-color-border-general);padding-block:calc(var(--spacing) * 4);display:flex}.dh-layout-toolbar{align-items:flex-start;gap:calc(var(--spacing) * 2);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);display:flex}.dh-chat-thread-header{align-items:center;gap:calc(var(--spacing) * 1);display:flex}.dh-info-card-actions{align-items:center;gap:calc(var(--spacing) * 2);display:flex}.dh-info-card-header,.dh-payment-item{align-items:center;gap:calc(var(--spacing) * 3);display:flex}.dh-property-card-header{align-items:flex-start;gap:calc(var(--spacing) * 2);display:flex}.dh-request-item-meta{align-items:center;gap:calc(var(--spacing) * 2);display:flex}.dh-timeline-item{align-items:flex-start;gap:calc(var(--spacing) * 4);display:flex}.dh-chip{padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * .5);--tw-font-weight:var(--font-weight-medium);font-size:11px;font-weight:var(--font-weight-medium);background-color:var(--dh-chip-bg,var(--dh-color-chip-bg));color:var(--dh-chip-color,var(--dh-color-chip-text));border-radius:.25rem;align-items:center;display:inline-flex}.dh-chat-empty-state-icon-wrap{align-items:center;display:flex}.dh-image-preview-toolbar{padding:calc(var(--spacing) * 2);justify-content:flex-end;display:flex}.dh-chat-row-received{padding-right:calc(var(--spacing) * 10);justify-content:flex-start;display:flex}.dh-chat-row-sent{padding-left:calc(var(--spacing) * 10);justify-content:flex-end;display:flex}.dh-rd-stars{gap:calc(var(--spacing) * 3);display:flex}.dh-document-item__title,.dh-media-card-title{-webkit-line-clamp:2;font-family:var(--dh-font-family);--tw-leading:140%;--tw-font-weight:var(--font-weight-medium);font-size:16px;line-height:140%;font-weight:var(--font-weight-medium);--tw-tracking:0;letter-spacing:0;color:var(--dh-color-text-main);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.dh-poll-card-result-label{-webkit-line-clamp:2;font-family:Montserrat arm;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5);--tw-tracking:-.15px;letter-spacing:-.15px;color:var(--color-white);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.dh-property-card-address{-webkit-line-clamp:2;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-dh-text-secondary);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.dh-progress-wrap{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.dh-apartment-details-modal-thumbnail{border-radius:var(--dh-radius-md);border:1px solid var(--dh-color-border-general);flex-shrink:0;width:54px;height:44px;overflow:hidden}.dh-chat-avatar{border-radius:var(--dh-radius-md);flex-shrink:0;width:44px;height:44px;overflow:hidden}.dh-request-item-meta-dot{width:calc(var(--spacing) * 1);height:calc(var(--spacing) * 1);background-color:var(--dh-color-text-secondary);border-radius:3.40282e38px;flex-shrink:0}.dh-select-start-icon{flex-shrink:0;width:14px;height:18px}.dh-hourglass-wrapper{width:88px;height:88px;animation:3s ease-in-out infinite dh-hourglass-rotate}.dh-chat-attachment-image{cursor:pointer;border-radius:var(--radius-xl);object-fit:cover;width:200px;height:200px}.dh-carousel-dot{height:calc(var(--spacing) * 1.5);width:calc(var(--spacing) * 1.5);background-color:var(--dh-color-text-secondary);opacity:.3;transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;border-radius:3.40282e38px;transition-duration:.2s}.dh-media-preview-dot{height:calc(var(--spacing) * 1.5);width:calc(var(--spacing) * 1.5);background-color:var(--color-white);opacity:.3;transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;border-radius:3.40282e38px;transition-duration:.2s}.dh-apartment-details-modal-dot{background-color:var(--dh-color-text-secondary);opacity:.3;border-radius:9999px;width:6px;height:6px;transition:width .2s,opacity .2s}.dh-ad-banner-btn{border-style:var(--tw-border-style);width:100%;height:100%;padding:calc(var(--spacing) * 0);text-align:left;background-color:#0000;border-width:0}.dh-ad-banner-img,.dh-avatar-img,.dh-image,.dh-media-card-media-el{object-fit:cover;width:100%;height:100%}.dh-media-preview-video{object-fit:contain;width:100%;height:100%}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-full{width:100%;height:100%}.dh-new-request-theme-input{flex:1;height:21px!important}.dh-progress-bar-el{border-style:var(--tw-border-style);border-width:1px;border-color:var(--dh-color-border-general);--background:var(--dh-color-border);--buffer-background:var(--dh-color-border);--progress-background:var(--dh-color-text-main);border-radius:3px;height:6px;overflow:hidden}.h-full{height:100%}.h-px{height:1px}.dh-new-request-textarea{width:100%;max-height:calc(100vh - 300px);color:var(--dh-color-text-secondary);font-size:14px;overflow-y:auto}.dh-image-preview-img{object-fit:contain;max-width:100%;max-height:100%}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-4{min-height:calc(var(--spacing) * 4)}.dh-btn-round ion-button{--border-radius:50%;--padding-start:0;--padding-end:0;width:var(--dh-btn-height);min-width:var(--dh-btn-height)}.dh-chat-contact-name{text-overflow:ellipsis;white-space:nowrap;text-align:center;width:100%;font-family:var(--dh-font-family);--tw-leading:17px;--tw-font-weight:var(--font-weight-medium);font-size:16px;line-height:17px;font-weight:var(--font-weight-medium);--tw-tracking:.16px;letter-spacing:.16px;color:var(--dh-color-text-main);overflow:hidden}.dh-edit-profile-input{border-radius:var(--radius-xl);color:#212121;width:100%;font-family:Montserrat arm;font-size:14px;--padding-start:16px!important;--padding-end:16px!important;--padding-top:14px!important;--padding-bottom:14px!important;background:#fbfbfb!important;border:1px solid #ffffffb2!important}.dh-edit-profile-input label{border-radius:12px!important}.dh-profile-dignisi-banner{text-align:left;background:linear-gradient(206.5deg,#1f5ef8 6.17%,#936bf7 69.69%);width:100%;border-bottom-right-radius:var(--dh-radius-md)!important;border-bottom-left-radius:var(--dh-radius-md)!important;padding:calc(var(--spacing) * 4)!important}.dh-chat-create-search-input{width:100%;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5);color:var(--dh-color-text-main);--tw-outline-style:none;background-color:#0000;outline-style:none}.dh-chat-create-search-input::placeholder{color:var(--dh-color-text-secondary)}.dh-apartment-details-modal-dot-active{opacity:1;background-color:var(--dh-color-primary);width:16px}.dh-carousel-dot-active{width:calc(var(--spacing) * 4);background-color:var(--dh-color-primary);opacity:1}.dh-poll-card-question{width:100%;font-family:Montserrat arm;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:var(--leading-normal);line-height:var(--leading-normal);--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);--tw-tracking:-.3125px;letter-spacing:-.3125px;color:#212121}.dh-timeline-date{width:100%;font-family:var(--dh-font-family);--tw-leading:var(--leading-normal);font-size:12px;line-height:var(--leading-normal);--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal);--tw-tracking:0;letter-spacing:0;color:var(--dh-color-text-secondary)}.dh-timeline-title{width:100%;font-family:var(--dh-font-family);--tw-leading:var(--leading-normal);font-size:14px;line-height:var(--leading-normal);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:0;letter-spacing:0;color:var(--dh-color-text-main)}.dh-media-preview-dot-active{width:calc(var(--spacing) * 4);opacity:1}.dh-chat-empty-state-cta{width:97px}.dh-media-card-l{width:343px}.dh-media-card-m{width:257px}.dh-media-card-s{width:220px}.w-full{width:100%}.w-px{width:1px}.dh-requests-empty-state-description{--tw-leading:22px;--tw-tracking:.2px;letter-spacing:.2px;max-width:291px;color:var(--dh-color-text-main);font-size:14px;line-height:22px}.max-w-\[291px\]{max-width:291px}.dh-chat-thread-name{min-width:calc(var(--spacing) * 0);text-overflow:ellipsis;white-space:nowrap;font-family:var(--dh-font-family);--tw-leading:17px;--tw-font-weight:var(--font-weight-medium);font-size:16px;line-height:17px;font-weight:var(--font-weight-medium);--tw-tracking:.16px;letter-spacing:.16px;color:var(--dh-color-text-main);flex:1;overflow:hidden}.dh-chat-attachment-doc-name{min-width:calc(var(--spacing) * 0);text-overflow:ellipsis;white-space:nowrap;font-family:var(--dh-font-family);--tw-leading:calc(var(--spacing) * 5);font-size:14px;line-height:calc(var(--spacing) * 5);--tw-tracking:-.3125px;letter-spacing:-.3125px;color:var(--dh-color-text-main);flex:1;overflow:hidden}.dh-section-header-title{min-width:calc(var(--spacing) * 0);font-family:var(--dh-font-family);--tw-leading:100%;--tw-font-weight:var(--font-weight-medium);font-size:18px;line-height:100%;font-weight:var(--font-weight-medium);--tw-tracking:0;letter-spacing:0;color:var(--dh-color-text-main);flex:1}.dh-document-item__body,.dh-property-card-content{min-width:calc(var(--spacing) * 0);flex:1}.min-w-0{min-width:calc(var(--spacing) * 0)}.dh-chat-textarea{resize:none;font-family:var(--dh-font-family);--tw-leading:calc(var(--spacing) * 6);font-size:16px;line-height:calc(var(--spacing) * 6);--tw-tracking:-.3125px;letter-spacing:-.3125px;color:var(--dh-color-text-main);--tw-outline-style:none;background-color:#0000;outline-style:none;flex:1}.dh-chat-textarea::placeholder{color:var(--dh-color-text-placeholder)}.dh-edit-profile-phone-input{flex:1;border:none!important;border-radius:0!important}.dh-info-card-title{font-family:var(--dh-font-family);--tw-leading:1;--tw-font-weight:var(--font-weight-medium);font-size:16px;line-height:1;font-weight:var(--font-weight-medium);--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal);color:var(--dh-color-text-main);flex:1}.dh-lang-sel-label{--tw-leading:17px;--tw-font-weight:var(--font-weight-medium);font-family:Montserrat arm;font-size:13px;line-height:17px;font-weight:var(--font-weight-medium);--tw-tracking:.01em;letter-spacing:.01em;color:#212121;flex:1}.dh-new-request-info-text{--tw-tracking:.14px;letter-spacing:.14px;color:var(--dh-color-text-main);flex:1;font-size:14px}.dh-apartment-details-modal-track,.flex-1{flex:1}.dh-property-card-thumb{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-dh-border-general);background-color:var(--color-dh-bg-main);object-fit:cover;border-radius:12px;flex-shrink:0;overflow:hidden}.dh-rd-image-thumb{border-radius:var(--radius-xl);flex-shrink:0;overflow:hidden}.dh-notifications-card-badge{padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * .5);--tw-font-weight:var(--font-weight-medium);font-size:11px;font-weight:var(--font-weight-medium);color:#669f2a;background-color:#e6f4d7;border-radius:4px;flex-shrink:0}.dh-chat-thread-time{font-family:var(--dh-font-family);--tw-leading:17px;--tw-tracking:.13px;letter-spacing:.13px;color:var(--dh-color-text-secondary);flex-shrink:0;font-size:13px;line-height:17px}.dh-notifications-card-date{--tw-leading:18px;white-space:nowrap;color:#7b7b7b;flex-shrink:0;font-size:13px;line-height:18px}.dh-new-request-theme-label{color:var(--dh-color-text-secondary);flex-shrink:0}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.dh-rd-star{cursor:pointer;border-style:var(--tw-border-style);padding:calc(var(--spacing) * 0);color:var(--dh-color-text-secondary);background-color:#0000;border-width:0}.dh-bottom-nav__button--disabled{cursor:not-allowed;opacity:.5}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer,.dh-bottom-nav__button--enabled{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing) * 1)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.dh-chat-thread-tag{background-color:var(--dh-color-chat-role-badge);padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * .5);font-family:var(--dh-font-family);--tw-leading:17px;--tw-tracking:.11px;letter-spacing:.11px;color:var(--dh-color-text-main);border-radius:6px;align-self:flex-start;font-size:11px;line-height:17px}.dh-request-status{padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * .5);--tw-leading:17px;--tw-tracking:.11px;letter-spacing:.11px;color:var(--dh-color-text-main);border-radius:6px;align-self:flex-start;font-size:11px;line-height:17px}.dh-top-header-title{text-overflow:ellipsis;white-space:nowrap;text-align:center;font-family:var(--dh-font-family);--tw-leading:150%;--tw-font-weight:var(--font-weight-medium);font-size:16px;line-height:150%;font-weight:var(--font-weight-medium);--tw-tracking:-.02em;letter-spacing:-.02em;color:var(--dh-color-text-main);overflow:hidden}.dh-top-header-subtitle{text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--dh-color-text-secondary);overflow:hidden}.dh-property-card-title{text-overflow:ellipsis;white-space:nowrap;font-family:var(--dh-font-family);--tw-leading:140%;--tw-font-weight:var(--font-weight-medium);font-size:18px;line-height:140%;font-weight:var(--font-weight-medium);color:var(--color-dh-text-main);overflow:hidden}.dh-chat-thread-preview{text-overflow:ellipsis;white-space:nowrap;font-family:var(--dh-font-family);--tw-leading:17px;--tw-tracking:.11px;letter-spacing:.11px;color:var(--dh-color-text-secondary);font-size:11px;line-height:17px;overflow:hidden}.dh-apartment-details-modal-community-name{font-family:var(--dh-font-family);color:#212121;letter-spacing:var(--dh-letter-spacing);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:500;overflow:hidden}.dh-notifications-card-title{text-overflow:ellipsis;white-space:nowrap;--tw-leading:1.4;--tw-font-weight:var(--font-weight-medium);font-size:16px;line-height:1.4;font-weight:var(--font-weight-medium);color:#212121;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.dh-notifications-card{border-style:var(--tw-border-style);background-color:var(--color-white);padding:calc(var(--spacing) * 4);border-width:1px;border-color:#ededed;border-radius:20px}.dh-icon-btn-outlined{background-color:var(--dh-color-surface,#fbfbfb);color:var(--dh-color-text-main,#212121);border-color:var(--dh-color-border-general,#ededed)!important;border-radius:8px!important}.dh-poll-card-active{background-color:#d1e0ff;border-color:#e0e7ff;border-radius:var(--radius-xl)!important}.dh-poll-card-inactive{background-color:#fbfbfb;border-color:#ededed;border-radius:var(--radius-xl)!important}.rounded-dh-md{border-radius:var(--dh-radius-md)}.rounded-full{border-radius:3.40282e38px}.rounded-xl{border-radius:var(--radius-xl)}.dh-rd-response-box{border-top-left-radius:var(--radius-3xl);border-top-right-radius:var(--radius-3xl);border-bottom-right-radius:var(--radius-3xl);border-style:var(--tw-border-style);border-width:1px;border-color:var(--dh-color-border-general);padding:calc(var(--spacing) * 4);background-color:#fbfbfb;border-bottom-left-radius:6px}.border-0{border-style:var(--tw-border-style);border-width:0}.dh-all-schedules-summary-divider{border-top-style:var(--tw-border-style);border-color:#ededed;border-top-width:1px}.dh-chat-create-search-wrapper{border-bottom-style:var(--tw-border-style);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 1);border-color:#dfdfdf;border-bottom-width:1px}.dh-rd-status-row{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--dh-color-border-general);padding-inline:calc(var(--spacing) * 4);padding-top:calc(var(--spacing) * 3);padding-bottom:calc(var(--spacing) * 4)}.border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.dh-bottom-nav{background-color:var(--dh-color-bg-main);padding:calc(var(--spacing) * 1);--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);padding-bottom:calc(.25rem + env(safe-area-inset-bottom,0px))}.dh-payment-item-step--inactive{background-color:var(--dh-color-surface);color:var(--dh-color-text-main);border:1px solid var(--dh-color-border)}.dh-icon-btn-filled{background-color:var(--dh-color-primary,#0f0f10);color:#fff}.dh-icon-btn-ghost{color:var(--dh-color-text-main,#212121);background-color:#0000}.dh-payment-item-step--active{background-color:var(--dh-color-primary);color:var(--dh-color-bg-main)}.dh-modal-dark ion-modal{--background:var(--dh-color-primary);--box-shadow:none}.dh-modal-dark .dh-modal-wrapper{background-color:var(--dh-color-primary)}.dh-modal-dark ion-content{--background:var(--dh-color-primary)}.bg-\[var\(--dh-color-bg-main\)\]{background-color:var(--dh-color-bg-main)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-neutral-200{background-color:var(--color-neutral-200)}.bg-neutral-300{background-color:var(--color-neutral-300)}.bg-white{background-color:var(--color-white)}.bg-white\/40{background-color:#fff6}@supports (color:color-mix(in lab, red, red)){.bg-white\/40{background-color:color-mix(in oklab, var(--color-white) 40%, transparent)}}.dh-all-polls-content,.dh-apartment-content{background-color:var(--dh-color-surface)}.dh-edit-profile-content,.dh-new-request-content{background-color:var(--dh-color-bg-main)}.dh-notifications-content{background-color:#fbfbfb}.dh-request-status-closed{background-color:#f4f4f5}.dh-request-status-in-progress{background-color:#d1e0ff}.dh-request-status-rejected{background-color:#ffe4e8}.dh-request-status-resolved{background-color:#e6f4d7}.dh-timeline{background-color:var(--dh-color-bg-main)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.dh-profile-wrapper,.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-8{padding:calc(var(--spacing) * 8)}.dh-notifications-state-text{padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 6);text-align:center;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:#7b7b7b}.dh-rd-error{padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 8);text-align:center;color:var(--dh-color-text-secondary);font-size:13px}.dh-request-categories-state{padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 6);color:var(--dh-color-text-secondary);font-size:14px}.dh-new-request-description-area{padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 4)}.dh-notifications-item{padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 1)}.dh-chat-create-floor-label{padding-inline:calc(var(--spacing) * 1);--tw-leading:1;--tw-font-weight:var(--font-weight-normal);font-size:12px;line-height:1;font-weight:var(--font-weight-normal);--tw-tracking:.2px;letter-spacing:.2px;color:#7b7b7b}.dh-request-list{padding-inline:calc(var(--spacing) * 4)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-16{padding-top:calc(var(--spacing) * 16)}.pt-safe-top{padding-top:env(safe-area-inset-top,0px)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.dh-chat-empty{text-align:center;font-family:var(--dh-font-family);color:var(--dh-color-text-placeholder);font-size:14px}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.dh-rd-description-text{vertical-align:middle;font-family:var(--dh-font-family);--tw-leading:100%;--tw-font-weight:var(--font-weight-normal);font-size:11px;line-height:100%;font-weight:var(--font-weight-normal);--tw-tracking:.2px;letter-spacing:.2px;color:#212121}.dh-rd-section-label{vertical-align:middle;font-family:var(--dh-font-family);--tw-leading:100%;--tw-font-weight:var(--font-weight-normal);font-size:11px;line-height:100%;font-weight:var(--font-weight-normal);--tw-tracking:.2px;letter-spacing:.2px;color:#7b7b7b}.dh-rd-subject-category{vertical-align:middle;font-family:var(--dh-font-family);--tw-leading:22px;--tw-font-weight:var(--font-weight-medium);font-size:16px;line-height:22px;font-weight:var(--font-weight-medium);--tw-tracking:.2px;letter-spacing:.2px;color:#212121}.dh-rd-subject-text{vertical-align:middle;font-family:var(--dh-font-family);--tw-leading:22px;--tw-font-weight:var(--font-weight-normal);font-size:16px;line-height:22px;font-weight:var(--font-weight-normal);--tw-tracking:.2px;letter-spacing:.2px;color:#212121}.dh-poll-card-change-label{--tw-leading:1.4;--tw-font-weight:var(--font-weight-medium);font-family:Montserrat arm;font-size:13px;line-height:1.4;font-weight:var(--font-weight-medium);--tw-tracking:.2px;letter-spacing:.2px;white-space:nowrap;color:var(--color-white)}.dh-rd-body-text{font-family:var(--dh-font-family);--tw-leading:150%;--tw-font-weight:var(--font-weight-medium);font-size:14px;line-height:150%;font-weight:var(--font-weight-medium);--tw-tracking:-.02em;letter-spacing:-.02em;white-space:pre-wrap;color:#212121}.dh-all-schedules-summary-amount{font-family:var(--dh-font-family);--tw-leading:20.8px;--tw-font-weight:var(--font-weight-medium);font-size:18px;line-height:20.8px;font-weight:var(--font-weight-medium);--tw-tracking:-.31px;letter-spacing:-.31px;color:#212121}.dh-all-schedules-summary-label{font-family:var(--dh-font-family);--tw-leading:20.8px;--tw-font-weight:var(--font-weight-normal);font-size:16px;line-height:20.8px;font-weight:var(--font-weight-normal);--tw-tracking:-.31px;letter-spacing:-.31px;color:#212121}.dh-chat-bubble-name{font-family:var(--dh-font-family);--tw-leading:150%;--tw-font-weight:var(--font-weight-normal);font-size:12px;line-height:150%;font-weight:var(--font-weight-normal);--tw-tracking:.24px;letter-spacing:.24px;color:#191c19}.dh-document-item__meta{font-family:var(--dh-font-family);--tw-leading:18px;--tw-font-weight:var(--font-weight-normal);font-size:13px;line-height:18px;font-weight:var(--font-weight-normal);--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal);color:var(--dh-color-text-secondary)}.dh-edit-profile-label{--tw-leading:140%;--tw-font-weight:var(--font-weight-normal);font-family:Montserrat arm;font-size:14px;line-height:140%;font-weight:var(--font-weight-normal);--tw-tracking:-.02em;letter-spacing:-.02em;color:#7b7b7b}.dh-info-card-section-label{font-family:var(--dh-font-family);--tw-leading:1;--tw-font-weight:var(--font-weight-normal);font-size:12px;line-height:1;font-weight:var(--font-weight-normal);--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal);color:var(--dh-color-text-secondary)}.dh-info-card-section-value,.dh-info-row-label,.dh-info-row-value{font-family:var(--dh-font-family);--tw-leading:1;--tw-font-weight:var(--font-weight-normal);font-size:14px;line-height:1;font-weight:var(--font-weight-normal);--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal);color:var(--dh-color-text-main)}.dh-profile-dignisi-description{--tw-leading:1;--tw-font-weight:var(--font-weight-normal);font-family:Montserrat arm;font-size:12px;line-height:1;font-weight:var(--font-weight-normal);--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal);color:#fbfbfb}.dh-profile-dignisi-sale{--tw-leading:1.3;--tw-font-weight:var(--font-weight-normal);font-family:Montserrat arm;font-size:14px;line-height:1.3;font-weight:var(--font-weight-normal);--tw-tracking:var(--dh-letter-spacing);letter-spacing:var(--dh-letter-spacing);color:var(--color-white)}.dh-profile-dignisi-title{--tw-leading:1.4;--tw-font-weight:var(--font-weight-semibold);font-family:Montserrat arm;font-size:16px;line-height:1.4;font-weight:var(--font-weight-semibold);--tw-tracking:var(--dh-letter-spacing);letter-spacing:var(--dh-letter-spacing);color:#fbfbfb}.dh-profile-header-name{--tw-leading:28px;--tw-font-weight:var(--font-weight-medium);font-family:Montserrat arm;font-size:16px;line-height:28px;font-weight:var(--font-weight-medium);--tw-tracking:0px;letter-spacing:0;color:var(--color-white)}.dh-request-item-category{font-family:var(--dh-font-family);--tw-leading:17px;--tw-font-weight:var(--font-weight-medium);font-size:13px;line-height:17px;font-weight:var(--font-weight-medium);--tw-tracking:.13px;letter-spacing:.13px;color:var(--dh-color-text-main)}.dh-request-item-title{font-family:var(--dh-font-family);--tw-leading:17px;--tw-font-weight:var(--font-weight-normal);font-size:13px;line-height:17px;font-weight:var(--font-weight-normal);--tw-tracking:.13px;letter-spacing:.13px;color:var(--dh-color-text-main)}.dh-contact-modal-phone{font-family:var(--dh-font-family);font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--dh-letter-spacing);letter-spacing:var(--dh-letter-spacing);color:var(--dh-color-text-main)}.dh-chat-create-company-subtitle{letter-spacing:.01em;color:#b0b2b5;font-family:Montserrat Arm,sans-serif;font-size:12px;font-weight:400;line-height:17px}.dh-chat-create-company-title{letter-spacing:.01em;color:#212121;font-family:Montserrat Arm,sans-serif;font-size:14px;font-weight:500;line-height:17px}.dh-media-preview-counter{font-family:var(--dh-font-family);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--color-white);opacity:.6}.dh-progress-label{font-family:var(--dh-font-family);--tw-leading:18px;--tw-font-weight:var(--font-weight-medium);font-size:13px;line-height:18px;font-weight:var(--font-weight-medium);color:var(--dh-color-text-main)}.dh-media-preview-title{font-family:var(--dh-font-family);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-white)}.dh-chat-bubble-time{font-family:var(--dh-font-family);--tw-leading:17px;--tw-tracking:.13px;letter-spacing:.13px;white-space:nowrap;color:var(--dh-color-text-secondary);font-size:13px;line-height:17px}.dh-chat-bubble-text{font-family:var(--dh-font-family);--tw-leading:calc(var(--spacing) * 5);font-size:14px;line-height:calc(var(--spacing) * 5);--tw-tracking:-.3125px;letter-spacing:-.3125px;color:var(--dh-color-text-main)}.dh-chat-contact-role-text{font-family:var(--dh-font-family);--tw-leading:17px;--tw-tracking:.11px;letter-spacing:.11px;color:var(--dh-color-text-main);font-size:11px;line-height:17px}.dh-rd-info-community,.dh-rd-info-row-text{font-family:var(--dh-font-family);--tw-leading:100%;color:var(--dh-color-text-secondary);font-size:11px;line-height:100%}.dh-contact-modal-name{font-family:var(--dh-font-family);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--dh-color-text-secondary)}.dh-apartment-installment-title{font-family:var(--dh-font-family);--tw-font-weight:var(--font-weight-medium);font-size:18px;font-weight:var(--font-weight-medium);--tw-tracking:var(--dh-letter-spacing);letter-spacing:var(--dh-letter-spacing);color:var(--dh-color-text-main)}.dh-payment-item-amount{font-family:var(--dh-font-family);--tw-font-weight:var(--font-weight-medium);font-size:16px;font-weight:var(--font-weight-medium);--tw-tracking:var(--dh-letter-spacing);letter-spacing:var(--dh-letter-spacing);color:var(--dh-color-text-main)}.dh-modal-title{font-family:var(--dh-font-family);letter-spacing:var(--dh-letter-spacing);color:var(--dh-color-text-main);font-size:18px;font-weight:600}.dh-all-polls-state-text,.dh-all-schedules-state-text,.dh-apartment-installment-subtitle,.dh-chat-poll-state-text{font-family:var(--dh-font-family);color:var(--dh-color-text-secondary);font-size:14px}.dh-edit-profile-phone-code{color:#212121;font-family:Montserrat arm;font-size:14px}.dh-payment-item-date{font-family:var(--dh-font-family);color:var(--dh-color-text-secondary);font-size:13px}.dh-profile-state-text{color:#7b7b7b;font-family:Montserrat arm;font-size:13px}.dh-poll-card-date{--tw-font-weight:var(--font-weight-medium);font-family:Montserrat arm;font-weight:var(--font-weight-medium);color:#7b7b7b}.dh-poll-card-label{--tw-font-weight:var(--font-weight-bold);font-family:Montserrat arm;font-weight:var(--font-weight-bold);color:#020127}.font-\[\'Montserrat_arm\'\]{font-family:Montserrat arm}.dh-rd-rating-label{--tw-leading:1;--tw-font-weight:var(--font-weight-normal);font-size:11px;line-height:1;font-weight:var(--font-weight-normal);--tw-tracking:.2px;letter-spacing:.2px;white-space:pre-line;color:#7b7b7b}.dh-rd-rating-thankyou{--tw-leading:1;--tw-font-weight:var(--font-weight-normal);font-size:11px;line-height:1;font-weight:var(--font-weight-normal);--tw-tracking:.2px;letter-spacing:.2px;color:#7b7b7b}.dh-chat-empty-state-heading{--tw-leading:30px;--tw-font-weight:var(--font-weight-semibold);font-size:22px;line-height:30px;font-weight:var(--font-weight-semibold);color:var(--dh-color-text-main)}.dh-request-categories-card-label{--tw-leading:1.4;--tw-font-weight:var(--font-weight-medium);font-size:13px;line-height:1.4;font-weight:var(--font-weight-medium);color:var(--dh-color-text-main)}.dh-requests-empty-state-title{--tw-leading:30px;--tw-font-weight:var(--font-weight-semibold);font-size:22px;line-height:30px;font-weight:var(--font-weight-semibold);color:var(--dh-color-text-main)}.dh-avatar-initials{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--dh-color-text-main)}.dh-chat-empty-state-title{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--dh-color-text-main)}.dh-request-item-meta-text{--tw-leading:17px;--tw-tracking:.13px;letter-spacing:.13px;white-space:nowrap;color:var(--dh-color-text-secondary);font-size:13px;line-height:17px}.dh-chat-empty-state-description{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-leading:22px;--tw-tracking:.2px;letter-spacing:.2px;color:var(--dh-color-text-main);line-height:22px}.dh-notifications-card-text{--tw-leading:18px;color:#212121;font-size:14px;line-height:18px}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.dh-btn-outlined ion-button{--background:var(--dh-btn-background,var(--dh-color-surface));--background-hover:var(--dh-btn-background,var(--dh-color-surface))}@supports (color:color-mix(in lab, red, red)){.dh-btn-outlined ion-button{--background-hover:color-mix(in srgb, var(--dh-btn-background,var(--dh-color-surface)) 90%, black)}}.dh-btn-outlined ion-button{--background-activated:var(--dh-btn-background,var(--dh-color-surface))}@supports (color:color-mix(in lab, red, red)){.dh-btn-outlined ion-button{--background-activated:color-mix(in srgb, var(--dh-btn-background,var(--dh-color-surface)) 85%, black)}}.dh-btn-outlined ion-button{--background-focused:var(--dh-btn-background,var(--dh-color-surface))}@supports (color:color-mix(in lab, red, red)){.dh-btn-outlined ion-button{--background-focused:color-mix(in srgb, var(--dh-btn-background,var(--dh-color-surface)) 90%, black)}}.dh-btn-outlined ion-button{--color:var(--dh-btn-label-color,var(--dh-color-text-main));--border-color:var(--dh-btn-border-color,var(--dh-color-border));--border-width:1px;--padding-start:var(--dh-spacing-md);--padding-end:var(--dh-spacing-md);font-size:var(--dh-font-size-btn-outlined)}.dh-btn-primary ion-button{--background:var(--dh-color-primary);--background-hover:var(--dh-color-primary)}@supports (color:color-mix(in lab, red, red)){.dh-btn-primary ion-button{--background-hover:color-mix(in srgb, var(--dh-color-primary) 85%, white)}}.dh-btn-primary ion-button{--background-activated:var(--dh-color-primary)}@supports (color:color-mix(in lab, red, red)){.dh-btn-primary ion-button{--background-activated:color-mix(in srgb, var(--dh-color-primary) 80%, white)}}.dh-btn-primary ion-button{--background-focused:var(--dh-color-primary)}@supports (color:color-mix(in lab, red, red)){.dh-btn-primary ion-button{--background-focused:color-mix(in srgb, var(--dh-color-primary) 85%, white)}}.dh-btn-primary ion-button{--color:#fff;--border-width:0;--padding-start:var(--dh-spacing-md);--padding-end:var(--dh-spacing-md);font-size:var(--dh-font-size-btn-primary)}.text-\[12px\]{font-size:12px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-\[22px\]{--tw-leading:22px;line-height:22px}.leading-\[100\%\]{--tw-leading:100%;line-height:100%}.dh-chat-thread-preview-sender{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--dh-color-text-main)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.2px\]{--tw-tracking:.2px;letter-spacing:.2px}.dh-bottom-nav__button--inactive{color:#575758}.dh-request-categories-card-arrow{color:var(--dh-color-text-secondary)}.text-\[\#0F0F10\]{color:#0f0f10}.text-black{color:var(--color-black)}.text-dh-text-main{color:var(--dh-color-text-main)}.text-gray-500{color:var(--color-gray-500)}.text-gray-900{color:var(--color-gray-900)}.text-red-500{color:var(--color-red-500)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.underline{text-decoration-line:underline}.opacity-60{opacity:.6}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.dh-btn-size-xs ion-button{--dh-btn-height:26px;--dh-btn-padding-y:4px;--padding-start:8px;--padding-end:8px}.dh-media-preview-modal{--height:100%;--border-radius:0;--background:#000}.dh-modal ion-modal{--border-radius:var(--dh-radius-lg);--background:var(--dh-color-bg-main);--box-shadow:0 8px 32px #0000001f}.dh-btn-size-lg ion-button{--dh-btn-height:62px;--dh-btn-padding-y:20px}.dh-btn-size-md ion-button{--dh-btn-height:48px;--dh-btn-padding-y:14px}.dh-btn-size-sm ion-button{--dh-btn-height:40px;--dh-btn-padding-y:10px}.\[--height\:100\%\]{--height:100%}.dh-icon-btn-lg{--dh-icon-btn-size:62px}.dh-icon-btn-md{--dh-icon-btn-size:48px}.dh-icon-btn-sm{--dh-icon-btn-size:40px}.dh-modal-sheet ion-modal{--border-radius:var(--dh-radius-lg) var(--dh-radius-lg) 0 0}.dh-select-size-lg{--dh-select-height:62px}.dh-select-size-md{--dh-select-height:48px}.dh-select-size-sm{--dh-select-height:40px}@media (prefers-color-scheme:dark){.dark\:bg-gray-900{background-color:var(--color-gray-900)}.dark\:text-white{color:var(--color-white)}}}@keyframes dh-hourglass-rotate{0%{transform:rotate(0)}30%{transform:rotate(0)}50%{transform:rotate(180deg)}80%{transform:rotate(180deg)}to{transform:rotate(360deg)}}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-scroll-snap-strictness{syntax:"*";inherits:false;initial-value:proximity}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
|