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 CHANGED
@@ -1,8 +1,8 @@
1
1
  # dhomie-app
2
2
 
3
- A self-contained Angular micro-app library that handles OIDC authentication (PKCE) and the DHomie feature set. It works in both a Capacitor native shell (iOS / Android) and a plain web shell.
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 ships with OIDC credentials and API URLs **baked in** at publish time no runtime configuration is required from the consumer.
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. [Register the micro route in the shell app](#3-register-the-micro-route-in-the-shell-app)
14
- 4. [Add the cold-start deep link handler (Capacitor only)](#4-add-the-cold-start-deep-link-handler-capacitor-only)
15
- 5. [Register the custom URL scheme (Capacitor native only)](#5-register-the-custom-url-scheme-capacitor-native-only)
16
- 6. [Making API requests inside micro components](#6-making-api-requests-inside-micro-components)
17
- 7. [How authentication works](#7-how-authentication-works)
18
- 8. [Baked-in configuration reference](#8-baked-in-configuration-reference)
19
- 9. [Publishing a new version](#9-publishing-a-new-version)
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 | Version |
26
- |-------------------------|----------|
27
- | `@angular/common` | `^20.3.0` |
28
- | `@angular/core` | `^20.3.0` |
29
- | `@angular/router` | `^20.3.0` |
30
- | `@capacitor/app` | `^7.0.0` |
31
- | `@capacitor/browser` | `^7.0.0` |
32
- | `@capacitor/core` | `^7.0.0` |
33
- | `@capacitor/preferences`| `^7.0.0` |
34
- | `@ionic/angular` | `^8.0.0` |
35
- | `angular-oauth2-oidc` | `^20.0.0` |
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
- Then install all peer dependencies that your shell app does not already have:
52
+ Install any peer dependencies your host app does not already have:
46
53
 
47
54
  ```bash
48
- npm install @angular/common @angular/core @angular/router \
49
- @capacitor/app @capacitor/browser @capacitor/core @capacitor/preferences \
50
- @ionic/angular angular-oauth2-oidc
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
- ## 3. Register the micro route in the shell app
84
+ ## 4. Configure the environment
56
85
 
57
- Add a lazy-loaded `micro` route that delegates to `MICRO_ROUTES`. The library self-registers all of its providers (HttpClient, OAuthService, storage, interceptors) inside a child `EnvironmentInjector` — no call to `provideMicroApp()` is needed in the shell.
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 { MICRO_ROUTES } from 'dhomie-app'; // ← named export from the library
131
+ import { OAuthCallbackComponent } from 'dhomie-app';
132
+ import { environment } from '../environments/environment';
63
133
 
64
134
  export const routes: Routes = [
65
135
  {
66
- path: 'home',
67
- loadComponent: () => import('./home/home.page').then((m) => m.HomePage),
136
+ path: '',
137
+ loadComponent: () => import('./login/login.page').then(m => m.LoginPage),
68
138
  },
69
139
  {
70
- path: 'micro',
71
- loadChildren: () => import('dhomie-app').then((m) => m.MICRO_ROUTES),
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
- path: '',
75
- redirectTo: 'home',
76
- pathMatch: 'full',
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
- That is all the routing setup you need. The library exposes these internal routes under `/micro`:
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
- ## 4. Add the cold-start deep link handler (Capacitor only)
158
+ ## 6. Trigger login
92
159
 
93
- When the OS kills the app while the in-app browser is open (cold-start scenario), the guard's `appUrlOpen` listener is gone. The shell's `AppComponent` must register its own listener to catch the returning callback URL and navigate to `/micro/callback`.
160
+ Navigate to the library mount path from anywhere in the host app:
94
161
 
95
162
  ```ts
96
- // src/app/app.component.ts
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
- > **Note on cold-start**: if the OS killed the app during the browser session, the PKCE `code_verifier` stored in RAM is lost. The callback component's error handler catches the failed token exchange and redirects to `/micro/home`, which restarts the login flow from scratch. This is the expected and accepted behavior for cold-start.
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
- ## 5. Register the custom URL scheme (Capacitor native only)
173
+ ## 7. Register the custom URL scheme (native only)
136
174
 
137
- The mobile OAuth redirect URI is `com.thehood.app://micro/callback`. You must register this scheme in both native projects.
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>com.thehood.app</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.thehood.app" />
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
- ## 7. How authentication works
208
+ ## 8. How authentication works
196
209
 
197
- The guard (`microAuthGuard`) runs before every protected route under `/micro/home`.
210
+ The `microAuthGuard` runs before every protected route under `/microapp/app`.
198
211
 
199
- **Step-by-step sequence:**
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
- 1. **Hydrate storage** token data is loaded from `@capacitor/preferences` into RAM. This is memoized and instant on repeat navigations.
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
- ## 8. Baked-in configuration reference
213
-
214
- All OIDC credentials and API URLs are inlined into the published FESM bundle at build time. No runtime configuration is needed. The values correspond to `env.prod.ts`:
215
-
216
- | Field | Baked-in value |
217
- |-----------------------------|---------------------------------------------|
218
- | `oidc.issuer` | `https://auth.dhomie.com` |
219
- | `oidc.clientId` | `dhomie-micro-client` |
220
- | `oidc.scope` | `openid profile email offline_access` |
221
- | `oidc.redirectUri` (web) | `https://app.dhomie.com/micro/callback` |
222
- | `oidc.mobileRedirectUri` | `com.thehood.app://micro/callback` |
223
- | `oidc.responseType` | `code` (PKCE) |
224
- | `microApiBaseUrl` | `https://api.dhomie.com/v1` |
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
- ## 9. Publishing a new version
249
+ ## 10. Publishing a new version
229
250
 
230
- Run the publish script from the **project root**:
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 performs these steps automatically:
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 in production mode (`ng build dhomie-app --configuration production`) |
246
- | 2 | Inlines the `env.prod.ts` values into the FESM bundle (replaces the `dhomie-env` virtual import) |
247
- | 3 | Removes the stale source map and any `.npmrc` copied into `dist/dhomie-app` |
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 the **minor** or **major** version instead, edit `projects/dhomie-app/package.json` manually before running the script.
273
+ To bump **minor** or **major** version, edit `projects/dhomie-app/package.json` manually before running the script.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dhomie-app",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.3.0",
6
6
  "@angular/core": "^20.3.0",
@@ -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}