designbase-wp-library 0.1.0

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 ADDED
@@ -0,0 +1,265 @@
1
+ # DesignBase WordPress Library (DEWP)
2
+
3
+ 워드프레스 플러그인용 재사용 가능한 프론트엔드 라이브러리입니다.
4
+
5
+ > **DEWP** - DesignBase WordPress Library의 약자로, `mcp-` 접두사를 `dewp-`로 변경한 최신 버전입니다.
6
+
7
+ ## 🚀 특징
8
+
9
+ - **모듈화된 구조**: 핵심 기능과 전체 기능을 분리하여 필요한 만큼만 로드
10
+ - **체계적인 SCSS**: 변수, 믹스인, 컴포넌트를 체계적으로 구성
11
+ - **반응형 디자인**: 모바일 우선 접근법으로 모든 디바이스 지원
12
+ - **접근성 고려**: WCAG 가이드라인을 준수하는 컴포넌트
13
+ - **TypeScript 지원**: 완전한 타입 정의 제공
14
+
15
+ ## 📦 설치
16
+
17
+ ```bash
18
+ npm install designbase-wp-library
19
+ ```
20
+
21
+ ### CDN 사용
22
+
23
+ ```html
24
+ <!-- CSS -->
25
+ <link rel="stylesheet" href="https://unpkg.com/designbase-wp-library@latest/dist/css/dewp.min.css">
26
+
27
+ <!-- JavaScript -->
28
+ <script src="https://unpkg.com/designbase-wp-library@latest/dist/js/dewp.min.js"></script>
29
+ ```
30
+
31
+ ## 🏗️ 프로젝트 구조
32
+
33
+ ```
34
+ src/
35
+ ├── js/
36
+ │ ├── common/ # 공통 JavaScript 모듈
37
+ │ │ ├── mcp-modal.js
38
+ │ │ ├── mcp-dropdown.js
39
+ │ │ └── mcp-toast.js
40
+ │ ├── frontend/ # 프론트엔드 전용 모듈
41
+ │ └── admin/ # 관리자 전용 모듈
42
+ ├── styles/
43
+ │ └── scss/
44
+ │ ├── basic/ # 기본 스타일 (변수, 믹스인, 타이포그래피, 레이아웃)
45
+ │ ├── components/ # 재사용 가능한 컴포넌트
46
+ │ ├── common/ # 공통 컴포넌트 스타일
47
+ │ └── main.scss # 메인 스타일시트
48
+ ├── utils/
49
+ │ └── dom.ts # DOM 유틸리티 함수
50
+ ├── core.ts # 핵심 모듈 (가벼운 버전)
51
+ └── index.ts # 전체 기능 모듈
52
+ ```
53
+
54
+ ## 🎯 사용법
55
+
56
+ ### JavaScript 사용
57
+
58
+ #### 브라우저에서 직접 사용
59
+ ```html
60
+ <script src="dist/js/dewp.min.js"></script>
61
+ <script>
62
+ // 전역 DEWP 객체 사용
63
+ window.DEWP.showToast('안녕하세요!', 'success');
64
+
65
+ // 모달 표시
66
+ window.DEWP.showModal({
67
+ title: '알림',
68
+ content: '모달이 표시됩니다!',
69
+ size: 'md'
70
+ });
71
+
72
+ // 확인 모달
73
+ window.DEWP.showConfirmModal({
74
+ title: '확인',
75
+ message: '정말로 진행하시겠습니까?',
76
+ onConfirm: () => console.log('확인됨'),
77
+ onCancel: () => console.log('취소됨')
78
+ });
79
+ </script>
80
+ ```
81
+
82
+ #### 모듈 번들러 사용
83
+ ```javascript
84
+ import { showToast, showModal, showConfirmModal } from 'designbase-wp-library';
85
+
86
+ // 토스트 표시
87
+ showToast('성공!', 'success');
88
+
89
+ // 모달 표시
90
+ showModal({
91
+ title: '알림',
92
+ content: '모달입니다!',
93
+ size: 'lg'
94
+ });
95
+ ```
96
+
97
+ ### CSS 사용
98
+
99
+ ```html
100
+ <link rel="stylesheet" href="dist/css/dewp.min.css">
101
+ ```
102
+
103
+ ## 🛠️ 개발
104
+
105
+ ### 의존성 설치
106
+ ```bash
107
+ npm install
108
+ ```
109
+
110
+ ### 개발 모드
111
+ ```bash
112
+ # CSS와 JS 모두 감시 모드
113
+ npm run dev
114
+
115
+ # CSS만 감시 모드
116
+ npm run dev:css
117
+
118
+ # JS만 감시 모드
119
+ npm run dev:js
120
+ ```
121
+
122
+ ### 빌드
123
+ ```bash
124
+ # 전체 빌드
125
+ npm run build
126
+
127
+ # CSS만 빌드
128
+ npm run build:css
129
+
130
+ # JS만 빌드
131
+ npm run build:js
132
+ ```
133
+
134
+ ## 📚 컴포넌트
135
+
136
+ ### 기본 컴포넌트
137
+
138
+ #### 버튼
139
+ ```html
140
+ <button class="btn btn-primary">Primary Button</button>
141
+ <button class="btn btn-outline-secondary">Outline Button</button>
142
+ <button class="btn btn-success btn-lg">Large Success Button</button>
143
+ ```
144
+
145
+ #### 배지
146
+ ```html
147
+ <span class="badge badge-primary">Primary</span>
148
+ <span class="badge badge-success badge-pill">Success</span>
149
+ <span class="badge badge-danger badge-ring"></span>
150
+ ```
151
+
152
+ #### 그리드
153
+ ```html
154
+ <div class="container">
155
+ <div class="row">
156
+ <div class="col-md-6">Left Column</div>
157
+ <div class="col-md-6">Right Column</div>
158
+ </div>
159
+ </div>
160
+ ```
161
+
162
+ ### 유틸리티 클래스
163
+
164
+ #### 간격
165
+ ```html
166
+ <div class="p-3 m-2">패딩과 마진</div>
167
+ <div class="px-4 py-2">가로/세로 패딩</div>
168
+ ```
169
+
170
+ #### 플렉스
171
+ ```html
172
+ <div class="d-flex justify-between align-center">
173
+ <span>Left</span>
174
+ <span>Right</span>
175
+ </div>
176
+ ```
177
+
178
+ #### 색상
179
+ ```html
180
+ <p class="text-primary">Primary 텍스트</p>
181
+ <div class="bg-secondary">Secondary 배경</div>
182
+ ```
183
+
184
+ ## 🎨 SCSS 커스터마이징
185
+
186
+ ### 변수 재정의
187
+ ```scss
188
+ // _custom-variables.scss
189
+ $primary: #your-color;
190
+ $font-family-base: 'Your Font', sans-serif;
191
+
192
+ // main.scss
193
+ @import 'custom-variables';
194
+ @import 'basic/variables';
195
+ // ... 나머지 import
196
+ ```
197
+
198
+ ### 믹스인 사용
199
+ ```scss
200
+ .my-component {
201
+ @include flex-center;
202
+ @include shadow(2);
203
+ @include respond-to(md) {
204
+ // 중간 화면 이상에서만 적용
205
+ }
206
+ }
207
+ ```
208
+
209
+ ## 📱 반응형 브레이크포인트
210
+
211
+ - **xs**: 0px 이상
212
+ - **sm**: 576px 이상
213
+ - **md**: 768px 이상
214
+ - **lg**: 992px 이상
215
+ - **xl**: 1200px 이상
216
+ - **xxl**: 1400px 이상
217
+
218
+ ## 🔧 빌드 출력
219
+
220
+ ```
221
+ dist/
222
+ ├── css/
223
+ │ └── dewp.min.css # 압축된 CSS
224
+ └── js/
225
+ └── dewp.min.js # 압축된 JavaScript
226
+ ```
227
+
228
+ ## 🚀 배포
229
+
230
+ ### 프로덕션 빌드
231
+ ```bash
232
+ npm run build:prod
233
+ ```
234
+
235
+ ### 배포 전 미리보기
236
+ ```bash
237
+ npm run preview
238
+ ```
239
+
240
+ ### npm에 배포
241
+ ```bash
242
+ npm run release
243
+ ```
244
+
245
+ ### 수동 배포
246
+ ```bash
247
+ npm run build:prod
248
+ npm publish
249
+ ```
250
+
251
+ ## 📄 라이선스
252
+
253
+ MIT License
254
+
255
+ ## 🤝 기여
256
+
257
+ 1. Fork the repository
258
+ 2. Create your feature branch (`git checkout -b feature/amazing-feature`)
259
+ 3. Commit your changes (`git commit -m 'Add some amazing feature'`)
260
+ 4. Push to the branch (`git push origin feature/amazing-feature`)
261
+ 5. Open a Pull Request
262
+
263
+ ## 📞 지원
264
+
265
+ 문제가 있거나 질문이 있으시면 이슈를 생성해 주세요.
@@ -0,0 +1 @@
1
+ .margin-1{margin:4px}.margint-1{margin-top:4px}.marginr-1{margin-right:4px}.marginb-1{margin-bottom:4px}.marginl-1{margin-left:4px}.marginx-1{margin-left:4px;margin-right:4px}.marginy-1{margin-top:4px;margin-bottom:4px}.margin-2{margin:8px}.margint-2{margin-top:8px}.marginr-2{margin-right:8px}.marginb-2{margin-bottom:8px}.marginl-2{margin-left:8px}.marginx-2{margin-left:8px;margin-right:8px}.marginy-2{margin-top:8px;margin-bottom:8px}.margin-3{margin:12px}.margint-3{margin-top:12px}.marginr-3{margin-right:12px}.marginb-3{margin-bottom:12px}.marginl-3{margin-left:12px}.marginx-3{margin-left:12px;margin-right:12px}.marginy-3{margin-top:12px;margin-bottom:12px}.margin-4{margin:16px}.margint-4{margin-top:16px}.marginr-4{margin-right:16px}.marginb-4{margin-bottom:16px}.marginl-4{margin-left:16px}.marginx-4{margin-left:16px;margin-right:16px}.marginy-4{margin-top:16px;margin-bottom:16px}.margin-5{margin:20px}.margint-5{margin-top:20px}.marginr-5{margin-right:20px}.marginb-5{margin-bottom:20px}.marginl-5{margin-left:20px}.marginx-5{margin-left:20px;margin-right:20px}.marginy-5{margin-top:20px;margin-bottom:20px}.margin-6{margin:24px}.margint-6{margin-top:24px}.marginr-6{margin-right:24px}.marginb-6{margin-bottom:24px}.marginl-6{margin-left:24px}.marginx-6{margin-left:24px;margin-right:24px}.marginy-6{margin-top:24px;margin-bottom:24px}.margin-7{margin:28px}.margint-7{margin-top:28px}.marginr-7{margin-right:28px}.marginb-7{margin-bottom:28px}.marginl-7{margin-left:28px}.marginx-7{margin-left:28px;margin-right:28px}.marginy-7{margin-top:28px;margin-bottom:28px}.margin-8{margin:32px}.margint-8{margin-top:32px}.marginr-8{margin-right:32px}.marginb-8{margin-bottom:32px}.marginl-8{margin-left:32px}.marginx-8{margin-left:32px;margin-right:32px}.marginy-8{margin-top:32px;margin-bottom:32px}.margin-9{margin:36px}.margint-9{margin-top:36px}.marginr-9{margin-right:36px}.marginb-9{margin-bottom:36px}.marginl-9{margin-left:36px}.marginx-9{margin-left:36px;margin-right:36px}.marginy-9{margin-top:36px;margin-bottom:36px}.margin-10{margin:40px}.margint-10{margin-top:40px}.marginr-10{margin-right:40px}.marginb-10{margin-bottom:40px}.marginl-10{margin-left:40px}.marginx-10{margin-left:40px;margin-right:40px}.marginy-10{margin-top:40px;margin-bottom:40px}.margin-11{margin:44px}.margint-11{margin-top:44px}.marginr-11{margin-right:44px}.marginb-11{margin-bottom:44px}.marginl-11{margin-left:44px}.marginx-11{margin-left:44px;margin-right:44px}.marginy-11{margin-top:44px;margin-bottom:44px}.margin-12{margin:48px}.margint-12{margin-top:48px}.marginr-12{margin-right:48px}.marginb-12{margin-bottom:48px}.marginl-12{margin-left:48px}.marginx-12{margin-left:48px;margin-right:48px}.marginy-12{margin-top:48px;margin-bottom:48px}.margin-13{margin:52px}.margint-13{margin-top:52px}.marginr-13{margin-right:52px}.marginb-13{margin-bottom:52px}.marginl-13{margin-left:52px}.marginx-13{margin-left:52px;margin-right:52px}.marginy-13{margin-top:52px;margin-bottom:52px}.margin-14{margin:56px}.margint-14{margin-top:56px}.marginr-14{margin-right:56px}.marginb-14{margin-bottom:56px}.marginl-14{margin-left:56px}.marginx-14{margin-left:56px;margin-right:56px}.marginy-14{margin-top:56px;margin-bottom:56px}.margin-15{margin:60px}.margint-15{margin-top:60px}.marginr-15{margin-right:60px}.marginb-15{margin-bottom:60px}.marginl-15{margin-left:60px}.marginx-15{margin-left:60px;margin-right:60px}.marginy-15{margin-top:60px;margin-bottom:60px}.margin-16{margin:64px}.margint-16{margin-top:64px}.marginr-16{margin-right:64px}.marginb-16{margin-bottom:64px}.marginl-16{margin-left:64px}.marginx-16{margin-left:64px;margin-right:64px}.marginy-16{margin-top:64px;margin-bottom:64px}.margin-17{margin:68px}.margint-17{margin-top:68px}.marginr-17{margin-right:68px}.marginb-17{margin-bottom:68px}.marginl-17{margin-left:68px}.marginx-17{margin-left:68px;margin-right:68px}.marginy-17{margin-top:68px;margin-bottom:68px}.margin-18{margin:72px}.margint-18{margin-top:72px}.marginr-18{margin-right:72px}.marginb-18{margin-bottom:72px}.marginl-18{margin-left:72px}.marginx-18{margin-left:72px;margin-right:72px}.marginy-18{margin-top:72px;margin-bottom:72px}.margin-19{margin:76px}.margint-19{margin-top:76px}.marginr-19{margin-right:76px}.marginb-19{margin-bottom:76px}.marginl-19{margin-left:76px}.marginx-19{margin-left:76px;margin-right:76px}.marginy-19{margin-top:76px;margin-bottom:76px}.margin-20{margin:80px}.margint-20{margin-top:80px}.marginr-20{margin-right:80px}.marginb-20{margin-bottom:80px}.marginl-20{margin-left:80px}.marginx-20{margin-left:80px;margin-right:80px}.marginy-20{margin-top:80px;margin-bottom:80px}.margin-0{margin:0}.margint-0{margin-top:0}.marginr-0{margin-right:0}.marginb-0{margin-bottom:0}.marginl-0{margin-left:0}.marginx-0{margin-left:0;margin-right:0}.marginy-0{margin-top:0;margin-bottom:0}.p-1{padding:4px}.pt-1{padding-top:4px}.pr-1{padding-right:4px}.pb-1{padding-bottom:4px}.pl-1{padding-left:4px}.px-1{padding-left:4px;padding-right:4px}.py-1{padding-top:4px;padding-bottom:4px}.p-2{padding:8px}.pt-2{padding-top:8px}.pr-2{padding-right:8px}.pb-2{padding-bottom:8px}.pl-2{padding-left:8px}.px-2{padding-left:8px;padding-right:8px}.py-2{padding-top:8px;padding-bottom:8px}.p-3{padding:12px}.pt-3{padding-top:12px}.pr-3{padding-right:12px}.pb-3{padding-bottom:12px}.pl-3{padding-left:12px}.px-3{padding-left:12px;padding-right:12px}.py-3{padding-top:12px;padding-bottom:12px}.p-4{padding:16px}.pt-4{padding-top:16px}.pr-4{padding-right:16px}.pb-4{padding-bottom:16px}.pl-4{padding-left:16px}.px-4{padding-left:16px;padding-right:16px}.py-4{padding-top:16px;padding-bottom:16px}.p-5{padding:20px}.pt-5{padding-top:20px}.pr-5{padding-right:20px}.pb-5{padding-bottom:20px}.pl-5{padding-left:20px}.px-5{padding-left:20px;padding-right:20px}.py-5{padding-top:20px;padding-bottom:20px}.p-6{padding:24px}.pt-6{padding-top:24px}.pr-6{padding-right:24px}.pb-6{padding-bottom:24px}.pl-6{padding-left:24px}.px-6{padding-left:24px;padding-right:24px}.py-6{padding-top:24px;padding-bottom:24px}.p-7{padding:28px}.pt-7{padding-top:28px}.pr-7{padding-right:28px}.pb-7{padding-bottom:28px}.pl-7{padding-left:28px}.px-7{padding-left:28px;padding-right:28px}.py-7{padding-top:28px;padding-bottom:28px}.p-8{padding:32px}.pt-8{padding-top:32px}.pr-8{padding-right:32px}.pb-8{padding-bottom:32px}.pl-8{padding-left:32px}.px-8{padding-left:32px;padding-right:32px}.py-8{padding-top:32px;padding-bottom:32px}.p-9{padding:36px}.pt-9{padding-top:36px}.pr-9{padding-right:36px}.pb-9{padding-bottom:36px}.pl-9{padding-left:36px}.px-9{padding-left:36px;padding-right:36px}.py-9{padding-top:36px;padding-bottom:36px}.p-10{padding:40px}.pt-10{padding-top:40px}.pr-10{padding-right:40px}.pb-10{padding-bottom:40px}.pl-10{padding-left:40px}.px-10{padding-left:40px;padding-right:40px}.py-10{padding-top:40px;padding-bottom:40px}.p-11{padding:44px}.pt-11{padding-top:44px}.pr-11{padding-right:44px}.pb-11{padding-bottom:44px}.pl-11{padding-left:44px}.px-11{padding-left:44px;padding-right:44px}.py-11{padding-top:44px;padding-bottom:44px}.p-12{padding:48px}.pt-12{padding-top:48px}.pr-12{padding-right:48px}.pb-12{padding-bottom:48px}.pl-12{padding-left:48px}.px-12{padding-left:48px;padding-right:48px}.py-12{padding-top:48px;padding-bottom:48px}.p-13{padding:52px}.pt-13{padding-top:52px}.pr-13{padding-right:52px}.pb-13{padding-bottom:52px}.pl-13{padding-left:52px}.px-13{padding-left:52px;padding-right:52px}.py-13{padding-top:52px;padding-bottom:52px}.p-14{padding:56px}.pt-14{padding-top:56px}.pr-14{padding-right:56px}.pb-14{padding-bottom:56px}.pl-14{padding-left:56px}.px-14{padding-left:56px;padding-right:56px}.py-14{padding-top:56px;padding-bottom:56px}.p-15{padding:60px}.pt-15{padding-top:60px}.pr-15{padding-right:60px}.pb-15{padding-bottom:60px}.pl-15{padding-left:60px}.px-15{padding-left:60px;padding-right:60px}.py-15{padding-top:60px;padding-bottom:60px}.p-16{padding:64px}.pt-16{padding-top:64px}.pr-16{padding-right:64px}.pb-16{padding-bottom:64px}.pl-16{padding-left:64px}.px-16{padding-left:64px;padding-right:64px}.py-16{padding-top:64px;padding-bottom:64px}.p-17{padding:68px}.pt-17{padding-top:68px}.pr-17{padding-right:68px}.pb-17{padding-bottom:68px}.pl-17{padding-left:68px}.px-17{padding-left:68px;padding-right:68px}.py-17{padding-top:68px;padding-bottom:68px}.p-18{padding:72px}.pt-18{padding-top:72px}.pr-18{padding-right:72px}.pb-18{padding-bottom:72px}.pl-18{padding-left:72px}.px-18{padding-left:72px;padding-right:72px}.py-18{padding-top:72px;padding-bottom:72px}.p-19{padding:76px}.pt-19{padding-top:76px}.pr-19{padding-right:76px}.pb-19{padding-bottom:76px}.pl-19{padding-left:76px}.px-19{padding-left:76px;padding-right:76px}.py-19{padding-top:76px;padding-bottom:76px}.p-20{padding:80px}.pt-20{padding-top:80px}.pr-20{padding-right:80px}.pb-20{padding-bottom:80px}.pl-20{padding-left:80px}.px-20{padding-left:80px;padding-right:80px}.py-20{padding-top:80px;padding-bottom:80px}.p-0{padding:0}.pt-0{padding-top:0}.pr-0{padding-right:0}.pb-0{padding-bottom:0}.pl-0{padding-left:0}.px-0{padding-left:0;padding-right:0}.py-0{padding-top:0;padding-bottom:0}.rounded-1{border-radius:4px}.rounded-top-1{border-top-left-radius:4px;border-top-right-radius:4px}.rounded-right-1{border-top-right-radius:4px;border-bottom-right-radius:4px}.rounded-bottom-1{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.rounded-left-1{border-top-left-radius:4px;border-bottom-left-radius:4px}.rounded-2{border-radius:8px}.rounded-top-2{border-top-left-radius:8px;border-top-right-radius:8px}.rounded-right-2{border-top-right-radius:8px;border-bottom-right-radius:8px}.rounded-bottom-2{border-bottom-right-radius:8px;border-bottom-left-radius:8px}.rounded-left-2{border-top-left-radius:8px;border-bottom-left-radius:8px}.rounded-3{border-radius:12px}.rounded-top-3{border-top-left-radius:12px;border-top-right-radius:12px}.rounded-right-3{border-top-right-radius:12px;border-bottom-right-radius:12px}.rounded-bottom-3{border-bottom-right-radius:12px;border-bottom-left-radius:12px}.rounded-left-3{border-top-left-radius:12px;border-bottom-left-radius:12px}.rounded-4{border-radius:16px}.rounded-top-4{border-top-left-radius:16px;border-top-right-radius:16px}.rounded-right-4{border-top-right-radius:16px;border-bottom-right-radius:16px}.rounded-bottom-4{border-bottom-right-radius:16px;border-bottom-left-radius:16px}.rounded-left-4{border-top-left-radius:16px;border-bottom-left-radius:16px}.rounded-5{border-radius:20px}.rounded-top-5{border-top-left-radius:20px;border-top-right-radius:20px}.rounded-right-5{border-top-right-radius:20px;border-bottom-right-radius:20px}.rounded-bottom-5{border-bottom-right-radius:20px;border-bottom-left-radius:20px}.rounded-left-5{border-top-left-radius:20px;border-bottom-left-radius:20px}.rounded-6{border-radius:24px}.rounded-top-6{border-top-left-radius:24px;border-top-right-radius:24px}.rounded-right-6{border-top-right-radius:24px;border-bottom-right-radius:24px}.rounded-bottom-6{border-bottom-right-radius:24px;border-bottom-left-radius:24px}.rounded-left-6{border-top-left-radius:24px;border-bottom-left-radius:24px}.rounded-7{border-radius:28px}.rounded-top-7{border-top-left-radius:28px;border-top-right-radius:28px}.rounded-right-7{border-top-right-radius:28px;border-bottom-right-radius:28px}.rounded-bottom-7{border-bottom-right-radius:28px;border-bottom-left-radius:28px}.rounded-left-7{border-top-left-radius:28px;border-bottom-left-radius:28px}.rounded-8{border-radius:32px}.rounded-top-8{border-top-left-radius:32px;border-top-right-radius:32px}.rounded-right-8{border-top-right-radius:32px;border-bottom-right-radius:32px}.rounded-bottom-8{border-bottom-right-radius:32px;border-bottom-left-radius:32px}.rounded-left-8{border-top-left-radius:32px;border-bottom-left-radius:32px}.rounded-9{border-radius:36px}.rounded-top-9{border-top-left-radius:36px;border-top-right-radius:36px}.rounded-right-9{border-top-right-radius:36px;border-bottom-right-radius:36px}.rounded-bottom-9{border-bottom-right-radius:36px;border-bottom-left-radius:36px}.rounded-left-9{border-top-left-radius:36px;border-bottom-left-radius:36px}.rounded-10{border-radius:40px}.rounded-top-10{border-top-left-radius:40px;border-top-right-radius:40px}.rounded-right-10{border-top-right-radius:40px;border-bottom-right-radius:40px}.rounded-bottom-10{border-bottom-right-radius:40px;border-bottom-left-radius:40px}.rounded-left-10{border-top-left-radius:40px;border-bottom-left-radius:40px}.rounded-0{border-radius:0}.rounded-top-0{border-top-left-radius:0;border-top-right-radius:0}.rounded-right-0{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-bottom-0{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-left-0{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-circle{border-radius:50%}.rounded-pill{border-radius:50rem}.rounded-top-left{border-top-left-radius:12px}.rounded-top-right{border-top-right-radius:12px}.rounded-bottom-left{border-bottom-left-radius:12px}.rounded-bottom-right{border-bottom-right-radius:12px}.rounded-0{border-radius:0}.rounded-inherit{border-radius:inherit}.rounded-initial{border-radius:initial}.rounded-unset{border-radius:unset}html{font-size:16px;line-height:1.5;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:1rem;font-weight:400;line-height:1.5;color:#111827;background-color:#fff;margin:0;padding:0}h1,h2,h3,h4,h5,h6{margin:0 0 12px 0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:600;line-height:1.25;color:#111827}h1{font-size:2rem;margin-bottom:24px}h2{font-size:1.5rem;margin-bottom:16px}h3{font-size:1.25rem;margin-bottom:16px}h4{font-size:1.125rem;margin-bottom:8px}h5{font-size:1rem;margin-bottom:8px}h6{font-size:.875rem;margin-bottom:8px;text-transform:uppercase;letter-spacing:.05em}p{margin:0 0 16px 0;line-height:1.5}p:last-child{margin-bottom:0}.text-xs{font-size:.75rem}.text-s{font-size:.875rem}.text-base{font-size:1rem}.text-m{font-size:1.125rem}.text-l{font-size:1.25rem}.text-xl{font-size:1.5rem}.text-xxl{font-size:2rem}.text-light{font-weight:300}.text-normal{font-weight:400}.text-medium{font-weight:500}.text-semibold{font-weight:600}.text-bold{font-weight:700}.text-primary{color:#111827}.text-secondary{color:#4b5563}.text-muted{color:#6b7280}.text-light{color:#9ca3af}.text-white{color:#fff}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.leading-tight{line-height:1.25}.leading-base{line-height:1.5}.leading-relaxed{line-height:1.8}a{color:#3b82f6;text-decoration:none;transition:color .15s ease}a:hover{color:rgb(11.1512195122,99.1219512195,242.8487804878);text-decoration:underline}a:focus{outline:2px solid #3b82f6;outline-offset:2px}.link-secondary{color:#4b5563}.link-secondary:hover{color:#111827}.link-muted{color:#6b7280}.link-muted:hover{color:#111827}ul,ol{margin:0 0 8px 0;padding-left:12px}li{margin-bottom:4px;line-height:1.5}.list-unstyled{list-style:none;padding-left:0}.list-inline{list-style:none;padding-left:0}.list-inline li{display:inline-block;margin-right:8px;margin-bottom:0}.list-inline li:last-child{margin-right:0}blockquote{margin:12px 0;padding:12px;border-left:2px solid #3b82f6;background-color:#f9fafb}blockquote p:last-child{margin-bottom:0}blockquote cite{display:block;margin-top:8px;font-size:.875rem;color:#6b7280;font-style:normal}code{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;font-size:.875rem;color:#ef4444;background-color:#f9fafb;padding:4px;border-radius:4px}pre{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;font-size:.875rem;line-height:1.5;color:#111827;background-color:#f9fafb;padding:4px;border-radius:8px;overflow-x:auto;margin:8px 0}pre code{color:inherit;background-color:rgba(0,0,0,0);padding:0;border-radius:0}hr{margin:12px 0;border:0;border-top:1px solid #f3f4f6;height:1px}small,.small{font-size:.75rem;color:#6b7280}strong,b{font-weight:600}em,i{font-style:italic}mark{background-color:#f59e0b;color:#111827;padding:4px;border-radius:.2em}del,s{text-decoration:line-through;color:#6b7280}ins,u{text-decoration:underline}sub,sup{font-size:.75rem;line-height:0;position:relative;vertical-align:baseline}sup{top:-4px}sub{bottom:-4px}*{box-sizing:border-box}.container{width:100%;margin:0 auto;padding:0 16px;max-width:1200px}@media(min-width: 576px){.container{padding:0 24px}}@media(min-width: 992px){.container{padding:0 32px}}.container-fluid{width:100%;margin:0 auto;padding:0 16px}@media(min-width: 576px){.container-fluid{padding:0 24px}}.row{display:flex;flex-wrap:wrap;margin:0 -8px}.col,.col-auto,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12{position:relative;width:100%;padding:0 8px}.col{flex:1 0 0%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-12{flex:0 0 100%;max-width:100%}@media(min-width: 576px){.col-sm-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-sm-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-sm-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-sm-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto}}@media(min-width: 768px){.col-md-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-md-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-md-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-md-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-md-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-md-12{flex:0 0 100%;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto}}@media(min-width: 992px){.col-lg-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-lg-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-lg-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-lg-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-lg-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto}}@media(min-width: 1200px){.col-xl-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-xl-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-xl-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-xl-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-xl-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto}}.d-flex{display:flex}.d-inline-flex{display:inline-flex}.d-none{display:none}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-column{flex-direction:column}.flex-column-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-center{align-content:center}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-stretch{align-content:stretch}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-baseline{align-self:baseline}.self-stretch{align-self:stretch}.flex-fill{flex:1 1 auto}.flex-grow-0{flex-grow:0}.flex-grow-1{flex-grow:1}.flex-shrink-0{flex-shrink:0}.flex-shrink-1{flex-shrink:1}.position-static{position:static}.position-relative{position:relative}.position-absolute{position:absolute}.position-fixed{position:fixed}.position-sticky{position:sticky}.d-block{display:block}.d-inline{display:inline}.d-inline-block{display:inline-block}.d-table{display:table}.d-table-row{display:table-row}.d-table-cell{display:table-cell}@media(min-width: 576px){.d-sm-block{display:block}.d-sm-inline{display:inline}.d-sm-inline-block{display:inline-block}.d-sm-flex{display:flex}.d-sm-none{display:none}}@media(min-width: 768px){.d-md-block{display:block}.d-md-inline{display:inline}.d-md-inline-block{display:inline-block}.d-md-flex{display:flex}.d-md-none{display:none}}@media(min-width: 992px){.d-lg-block{display:block}.d-lg-inline{display:inline}.d-lg-inline-block{display:inline-block}.d-lg-flex{display:flex}.d-lg-none{display:none}}@media(min-width: 1200px){.d-xl-block{display:block}.d-xl-inline{display:inline}.d-xl-inline-block{display:inline-block}.d-xl-flex{display:flex}.d-xl-none{display:none}}.w-25{width:25%}.w-50{width:50%}.w-75{width:75%}.w-100{width:100%}.w-auto{width:auto}.h-25{height:25%}.h-50{height:50%}.h-75{height:75%}.h-100{height:100%}.h-auto{height:auto}.vh-25{height:25vh}.vh-50{height:50vh}.vh-75{height:75vh}.vh-100{height:100vh}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-x-visible{overflow-x:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overflow-y-visible{overflow-y:visible}.overflow-y-scroll{overflow-y:scroll}.float-start{float:left}.float-end{float:right}.float-none{float:none}.clearfix::after{content:"";display:table;clear:both}.visible{visibility:visible}.invisible{visibility:hidden}@media(min-width: 576px){.d-sm-none{display:none}.d-sm-block{display:block}.d-sm-flex{display:flex}}@media(max-width: 575px){.d-sm-down-none{display:none}.d-sm-down-block{display:block}.d-sm-down-flex{display:flex}}@media(min-width: 768px){.d-md-none{display:none}.d-md-block{display:block}.d-md-flex{display:flex}}@media(max-width: 767px){.d-md-down-none{display:none}.d-md-down-block{display:block}.d-md-down-flex{display:flex}}@media(min-width: 992px){.d-lg-none{display:none}.d-lg-block{display:block}.d-lg-flex{display:flex}}@media(max-width: 991px){.d-lg-down-none{display:none}.d-lg-down-block{display:block}.d-lg-down-flex{display:flex}}@media(min-width: 1200px){.d-xl-none{display:none}.d-xl-block{display:block}.d-xl-flex{display:flex}}@media(max-width: 1199px){.d-xl-down-none{display:none}.d-xl-down-block{display:block}.d-xl-down-flex{display:flex}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes slideInUp{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInDown{from{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInLeft{from{transform:translateX(20px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideInRight{from{transform:translateX(-20px);opacity:0}to{transform:translateX(0);opacity:1}}*{box-sizing:border-box}html{font-size:16px;line-height:1.5;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:1rem;font-weight:400;line-height:1.5;color:#111827;background-color:#fff;margin:0;padding:0}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-justify{text-align:justify}.text-uppercase{text-transform:uppercase}.text-lowercase{text-transform:lowercase}.text-capitalize{text-transform:capitalize}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.position-relative{position:relative}.position-absolute{position:absolute}.position-fixed{position:fixed}.position-sticky{position:sticky}.visible{visibility:visible}.invisible{visibility:hidden}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.user-select-none{user-select:none}.user-select-auto{user-select:auto}.user-select-all{user-select:all}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}@media(min-width: 576px){.d-sm-none{display:none}.d-sm-block{display:block}.d-sm-inline{display:inline}.d-sm-inline-block{display:inline-block}.d-sm-flex{display:flex}.d-sm-inline-flex{display:inline-flex}}@media(min-width: 768px){.d-md-none{display:none}.d-md-block{display:block}.d-md-inline{display:inline}.d-md-inline-block{display:inline-block}.d-md-flex{display:flex}.d-md-inline-flex{display:inline-flex}}@media(min-width: 992px){.d-lg-none{display:none}.d-lg-block{display:block}.d-lg-inline{display:inline}.d-lg-inline-block{display:inline-block}.d-lg-flex{display:flex}.d-lg-inline-flex{display:inline-flex}}@media(min-width: 1200px){.d-xl-none{display:none}.d-xl-block{display:block}.d-xl-inline{display:inline}.d-xl-inline-block{display:inline-block}.d-xl-flex{display:flex}.d-xl-inline-flex{display:inline-flex}}@media print{*{background:rgba(0,0,0,0) !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}pre,blockquote{border:1px solid #d1d5db;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}.badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;font-size:.75rem;font-weight:500;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:8px;transition:all .15s ease}.badge .icon{margin-right:4px}.badge .icon:last-child{margin-right:0;margin-left:4px}.badge[href]{text-decoration:none;cursor:pointer}.badge[href]:hover{text-decoration:none}.badge-xs{padding:.125rem .25rem;font-size:.625rem}.badge-s{padding:4px 8px;font-size:.75rem}.badge-m{padding:8px 16px;font-size:.875rem}.badge-l{padding:16px 24px;font-size:1rem}.badge-primary{color:#fff;background-color:#3b82f6}.badge-primary[href]:hover{background-color:rgb(11.1512195122,99.1219512195,242.8487804878)}.badge-secondary{color:#fff;background-color:#6b7280}.badge-secondary[href]:hover{background-color:hsl(220,8.9361702128%,36.0784313725%)}.badge-success{color:#fff;background-color:#10b981}.badge-success[href]:hover{background-color:rgb(11.9402985075,138.0597014925,96.2686567164)}.badge-warning{color:#111827;background-color:#f59e0b}.badge-warning[href]:hover{background-color:rgb(196.9291338583,126.7125984252,8.0708661417)}.badge-danger{color:#fff;background-color:#ef4444}.badge-danger[href]:hover{background-color:hsl(0,84.236453202%,50.1960784314%)}.badge-info{color:#fff;background-color:#06b6d4}.badge-info[href]:hover{background-color:rgb(4.5963302752,139.4220183486,162.4036697248)}.badge-light{color:#111827;background-color:#f3f4f6}.badge-light[href]:hover{background-color:#e5e7eb}.badge-dark{color:#fff;background-color:#1f2937}.badge-dark[href]:hover{background-color:#111827}.badge-outline-primary{color:#3b82f6;background-color:rgba(0,0,0,0);border:1px solid #3b82f6}.badge-outline-secondary{color:#6b7280;background-color:rgba(0,0,0,0);border:1px solid #6b7280}.badge-outline-success{color:#10b981;background-color:rgba(0,0,0,0);border:1px solid #10b981}.badge-outline-warning{color:#f59e0b;background-color:rgba(0,0,0,0);border:1px solid #f59e0b}.badge-outline-danger{color:#ef4444;background-color:rgba(0,0,0,0);border:1px solid #ef4444}.badge-outline-info{color:#06b6d4;background-color:rgba(0,0,0,0);border:1px solid #06b6d4}.badge-outline-light{color:#4b5563;background-color:rgba(0,0,0,0);border:1px solid #d1d5db}.badge-outline-dark{color:#1f2937;background-color:rgba(0,0,0,0);border:1px solid #1f2937}.badge-rounded{border-radius:12px}.badge-pill{border-radius:24px}.badge-square{border-radius:0}.badge-dot{padding:0;width:.5rem;height:.5rem;border-radius:50%}.badge-dot .icon{display:none}.badge-ring{position:relative}.badge-ring::after{content:"";position:absolute;top:-2px;right:-2px;width:.5rem;height:.5rem;background-color:#ef4444;border:2px solid #fff;border-radius:50%}.badge-top-left{position:absolute;top:-0.5rem;left:-0.5rem;transform:translate(-50%, -50%)}.badge-top-right{position:absolute;top:-0.5rem;right:-0.5rem;transform:translate(50%, -50%)}.badge-bottom-left{position:absolute;bottom:-0.5rem;left:-0.5rem;transform:translate(-50%, 50%)}.badge-bottom-right{position:absolute;bottom:-0.5rem;right:-0.5rem;transform:translate(50%, 50%)}.badge-pulse{animation:badge-pulse 2s infinite}.badge-bounce{animation:badge-bounce 1s infinite}@keyframes badge-pulse{0%{box-shadow:0 0 0 0 rgba(59,130,246,.7)}70%{box-shadow:0 0 0 .5rem rgba(59,130,246,0)}100%{box-shadow:0 0 0 0 rgba(59,130,246,0)}}@keyframes badge-bounce{0%,20%,53%,80%,100%{transform:translate3d(0, 0, 0)}40%,43%{transform:translate3d(0, -0.25rem, 0)}70%{transform:translate3d(0, -0.125rem, 0)}90%{transform:translate3d(0, -0.0625rem, 0)}}.badge-group{display:inline-flex;align-items:center}.badge-group .badge{margin-right:4px}.badge-group .badge:last-child{margin-right:0}.badge-group-vertical{flex-direction:column}.badge-group-vertical .badge{margin-right:0;margin-bottom:4px}.badge-group-vertical .badge:last-child{margin-bottom:0}.btn .badge{margin-left:4px;font-size:.75em;vertical-align:middle}.btn .badge:first-child{margin-left:0;margin-right:4px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;font-size:1rem;font-weight:500;line-height:1.5;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;border:1px solid rgba(0,0,0,0);border-radius:8px;transition:all .15s ease;white-space:nowrap;min-height:2.5rem}.btn:hover{text-decoration:none}.btn:focus:focus{outline:2px solid #3b82f6;outline-offset:2px}.btn:focus:focus:not(:focus-visible){outline:none}.btn:disabled,.btn.disabled{opacity:.65;pointer-events:none;cursor:not-allowed}.btn .icon{margin-right:4px}.btn .icon:last-child{margin-right:0;margin-left:4px}.btn-xs{padding:4px 8px;font-size:.75rem;border-radius:4px;min-height:1.75rem}.btn-s{padding:4px 12px;font-size:.875rem;min-height:2rem}.btn-m{padding:8px 16px;font-size:1rem;min-height:2.5rem}.btn-l{padding:12px 20px;font-size:1.125rem;min-height:3rem}.btn-xl{padding:16px 24px;font-size:1.25rem;min-height:3.5rem}.btn-primary{color:#fff;background-color:#3b82f6;border-color:#3b82f6}.btn-primary:hover{color:#fff;background-color:rgb(11.1512195122,99.1219512195,242.8487804878);border-color:rgb(11.1512195122,99.1219512195,242.8487804878)}.btn-primary:focus:focus{outline:2px solid #3b82f6;outline-offset:2px}.btn-primary:focus:focus:not(:focus-visible){outline:none}.btn-primary:active{background-color:rgb(10.0317073171,89.1707317073,218.4682926829);border-color:rgb(10.0317073171,89.1707317073,218.4682926829)}.btn-secondary{color:#111827;background-color:#6b7280;border-color:#6b7280}.btn-secondary:hover{color:#fff;background-color:hsl(220,8.9361702128%,36.0784313725%);border-color:hsl(220,8.9361702128%,36.0784313725%)}.btn-secondary:focus:focus{outline:2px solid #6b7280;outline-offset:2px}.btn-secondary:focus:focus:not(:focus-visible){outline:none}.btn-secondary:active{background-color:hsl(220,8.9361702128%,31.0784313725%);border-color:hsl(220,8.9361702128%,31.0784313725%)}.btn-success{color:#fff;background-color:#10b981;border-color:#10b981}.btn-success:hover{color:#fff;background-color:rgb(11.9402985075,138.0597014925,96.2686567164);border-color:rgb(11.9402985075,138.0597014925,96.2686567164)}.btn-success:focus:focus{outline:2px solid #10b981;outline-offset:2px}.btn-success:focus:focus:not(:focus-visible){outline:none}.btn-success:active{background-color:rgb(9.9104477612,114.5895522388,79.9029850746);border-color:rgb(9.9104477612,114.5895522388,79.9029850746)}.btn-warning{color:#111827;background-color:#f59e0b;border-color:#f59e0b}.btn-warning:hover{color:#111827;background-color:rgb(196.9291338583,126.7125984252,8.0708661417);border-color:rgb(196.9291338583,126.7125984252,8.0708661417)}.btn-warning:focus:focus{outline:2px solid #f59e0b;outline-offset:2px}.btn-warning:focus:focus:not(:focus-visible){outline:none}.btn-warning:active{background-color:rgb(172.4330708661,110.9507874016,7.0669291339);border-color:rgb(172.4330708661,110.9507874016,7.0669291339)}.btn-danger{color:#fff;background-color:#ef4444;border-color:#ef4444}.btn-danger:hover{color:#fff;background-color:hsl(0,84.236453202%,50.1960784314%);border-color:hsl(0,84.236453202%,50.1960784314%)}.btn-danger:focus:focus{outline:2px solid #ef4444;outline-offset:2px}.btn-danger:focus:focus:not(:focus-visible){outline:none}.btn-danger:active{background-color:hsl(0,84.236453202%,45.1960784314%);border-color:hsl(0,84.236453202%,45.1960784314%)}.btn-info{color:#fff;background-color:#06b6d4;border-color:#06b6d4}.btn-info:hover{color:#fff;background-color:rgb(4.5963302752,139.4220183486,162.4036697248);border-color:rgb(4.5963302752,139.4220183486,162.4036697248)}.btn-info:focus:focus{outline:2px solid #06b6d4;outline-offset:2px}.btn-info:focus:focus:not(:focus-visible){outline:none}.btn-info:active{background-color:rgb(3.8944954128,118.1330275229,137.6055045872);border-color:rgb(3.8944954128,118.1330275229,137.6055045872)}.btn-light{color:#111827;background-color:#f3f4f6;border-color:#d1d5db}.btn-light:hover{color:#111827;background-color:#e5e7eb;border-color:#9ca3af}.btn-light:focus:focus{outline:2px solid #6b7280;outline-offset:2px}.btn-light:focus:focus:not(:focus-visible){outline:none}.btn-light:active{background-color:#d1d5db;border-color:#6b7280}.btn-dark{color:#fff;background-color:#1f2937;border-color:#1f2937}.btn-dark:hover{color:#fff;background-color:#111827;border-color:#111827}.btn-dark:focus:focus{outline:2px solid #374151;outline-offset:2px}.btn-dark:focus:focus:not(:focus-visible){outline:none}.btn-dark:active{background-color:#000;border-color:#000}.btn-outline-primary{color:#3b82f6;background-color:rgba(0,0,0,0);border-color:#3b82f6}.btn-outline-primary:hover{color:#fff;background-color:#3b82f6;border-color:#3b82f6}.btn-outline-primary:focus:focus{outline:2px solid #3b82f6;outline-offset:2px}.btn-outline-primary:focus:focus:not(:focus-visible){outline:none}.btn-outline-primary:active{color:#fff;background-color:rgb(10.0317073171,89.1707317073,218.4682926829);border-color:rgb(10.0317073171,89.1707317073,218.4682926829)}.btn-outline-secondary{color:#6b7280;background-color:rgba(0,0,0,0);border-color:#6b7280}.btn-outline-secondary:hover{color:#fff;background-color:#6b7280;border-color:#6b7280}.btn-outline-secondary:focus:focus{outline:2px solid #6b7280;outline-offset:2px}.btn-outline-secondary:focus:focus:not(:focus-visible){outline:none}.btn-outline-secondary:active{color:#fff;background-color:hsl(220,8.9361702128%,31.0784313725%);border-color:hsl(220,8.9361702128%,31.0784313725%)}.btn-outline-success{color:#10b981;background-color:rgba(0,0,0,0);border-color:#10b981}.btn-outline-success:hover{color:#fff;background-color:#10b981;border-color:#10b981}.btn-outline-success:focus:focus{outline:2px solid #10b981;outline-offset:2px}.btn-outline-success:focus:focus:not(:focus-visible){outline:none}.btn-outline-success:active{color:#fff;background-color:rgb(9.9104477612,114.5895522388,79.9029850746);border-color:rgb(9.9104477612,114.5895522388,79.9029850746)}.btn-outline-warning{color:#f59e0b;background-color:rgba(0,0,0,0);border-color:#f59e0b}.btn-outline-warning:hover{color:#111827;background-color:#f59e0b;border-color:#f59e0b}.btn-outline-warning:focus:focus{outline:2px solid #f59e0b;outline-offset:2px}.btn-outline-warning:focus:focus:not(:focus-visible){outline:none}.btn-outline-warning:active{color:#111827;background-color:rgb(172.4330708661,110.9507874016,7.0669291339);border-color:rgb(172.4330708661,110.9507874016,7.0669291339)}.btn-outline-danger{color:#ef4444;background-color:rgba(0,0,0,0);border-color:#ef4444}.btn-outline-danger:hover{color:#fff;background-color:#ef4444;border-color:#ef4444}.btn-outline-danger:focus:focus{outline:2px solid #ef4444;outline-offset:2px}.btn-outline-danger:focus:focus:not(:focus-visible){outline:none}.btn-outline-danger:active{color:#fff;background-color:hsl(0,84.236453202%,45.1960784314%);border-color:hsl(0,84.236453202%,45.1960784314%)}.btn-outline-info{color:#06b6d4;background-color:rgba(0,0,0,0);border-color:#06b6d4}.btn-outline-info:hover{color:#fff;background-color:#06b6d4;border-color:#06b6d4}.btn-outline-info:focus:focus{outline:2px solid #06b6d4;outline-offset:2px}.btn-outline-info:focus:focus:not(:focus-visible){outline:none}.btn-outline-info:active{color:#fff;background-color:rgb(3.8944954128,118.1330275229,137.6055045872);border-color:rgb(3.8944954128,118.1330275229,137.6055045872)}.btn-block{display:block;width:100%}.btn-loading{position:relative;color:rgba(0,0,0,0)}.btn-loading::after{content:"";position:absolute;top:50%;left:50%;width:1rem;height:1rem;margin:-0.5rem 0 0 -0.5rem;border:2px solid currentColor;border-right-color:rgba(0,0,0,0);border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn-group{display:inline-flex;vertical-align:middle}.btn-group .btn{position:relative;flex:1 1 auto}.btn-group .btn:not(:first-child){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .btn:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group .btn:hover,.btn-group .btn:focus,.btn-group .btn:active{z-index:1}.btn-group-vertical{flex-direction:column}.btn-group-vertical .btn:not(:first-child){margin-top:-1px;margin-left:0;border-top-left-radius:0;border-top-right-radius:0}.btn-group-vertical .btn:not(:last-child){border-bottom-left-radius:0;border-bottom-right-radius:0}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .btn-group{margin-right:8px;margin-bottom:8px}.btn-toolbar .btn-group:last-child{margin-right:0}.dropdown{position:relative;display:inline-block}.dropdown:has(.dropdown-menu.show) .dropdown-toggle{background-color:#f9fafb;color:#111827}.dropdown .dropdown-menu{position:absolute;background:#fff;border:1px solid #f3f4f6;border-radius:8px;box-shadow:0 .5rem 1rem rgba(0,0,0,.1);z-index:1000;min-width:160px;max-width:300px;opacity:0;visibility:hidden;transform:scale(0.95) translateY(-8px);transition:all .15s ease ease;overflow:hidden;pointer-events:none}.dropdown .dropdown-menu.show{opacity:1;visibility:visible;transform:scale(1) translateY(0);pointer-events:auto}.dropdown .dropdown-menu .dropdown-item{display:block;width:100%;padding:8px 16px;background:none;border:none;box-shadow:none;text-align:left;font-size:.875rem;color:#111827;cursor:pointer;transition:background-color .15s ease ease;text-decoration:none;line-height:1.5;border-bottom:1px solid #f3f4f6}.dropdown .dropdown-menu .dropdown-item:last-child{border-bottom:none}.dropdown .dropdown-menu .dropdown-item:hover{background-color:#f9fafb}.dropdown .dropdown-menu .dropdown-item:focus{background-color:#f9fafb}.dropdown .dropdown-menu .dropdown-item:focus:focus{outline:2px solid #3b82f6;outline-offset:2px}.dropdown .dropdown-menu .dropdown-item:focus:focus:not(:focus-visible){outline:none}.dropdown .dropdown-menu .dropdown-item:active{background-color:#e5e7eb}.dropdown .dropdown-menu .dropdown-item .dropdown-icon{width:14px;height:14px;margin-right:8px;vertical-align:middle;fill:currentColor}.dropdown .dropdown-menu .dropdown-item.dropdown-item-primary{color:#3b82f6}.dropdown .dropdown-menu .dropdown-item.dropdown-item-primary:hover{background-color:rgba(59,130,246,.1)}.dropdown .dropdown-menu .dropdown-item.dropdown-item-success{color:#10b981}.dropdown .dropdown-menu .dropdown-item.dropdown-item-success:hover{background-color:rgba(16,185,129,.1)}.dropdown .dropdown-menu .dropdown-item.dropdown-item-warning{color:#f59e0b}.dropdown .dropdown-menu .dropdown-item.dropdown-item-warning:hover{background-color:rgba(245,158,11,.1)}.dropdown .dropdown-menu .dropdown-item.dropdown-item-danger{color:#ef4444}.dropdown .dropdown-menu .dropdown-item.dropdown-item-danger:hover{background-color:rgba(239,68,68,.1)}.dropdown .dropdown-menu .dropdown-item.dropdown-item-info{color:#06b6d4}.dropdown .dropdown-menu .dropdown-item.dropdown-item-info:hover{background-color:rgba(6,182,212,.1)}.dropdown .dropdown-menu .dropdown-item:disabled,.dropdown .dropdown-menu .dropdown-item.disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.dropdown .dropdown-menu .dropdown-item.dropdown-divider{padding:0;height:1px;background-color:#f3f4f6;margin:4px 0;pointer-events:none;border-bottom:none}.dropdown .dropdown-menu .dropdown-item.dropdown-divider:hover{background-color:#f3f4f6}.dropdown .dropdown-menu .dropdown-item.dropdown-header{padding:4px 16px;font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;pointer-events:none;border-bottom:none}.dropdown .dropdown-menu .dropdown-item.dropdown-header:hover{background-color:rgba(0,0,0,0)}.dropdown .dropdown-menu.dropdown-sm{min-width:140px}.dropdown .dropdown-menu.dropdown-sm .dropdown-item{padding:4px 8px;font-size:.75rem}.dropdown .dropdown-menu.dropdown-lg{min-width:200px}.dropdown .dropdown-menu.dropdown-lg .dropdown-item{padding:16px 24px;font-size:1rem}.dropdown .dropdown-menu.dropdown-bordered{border:2px solid #f3f4f6}.dropdown .dropdown-menu.dropdown-shadow-lg{box-shadow:0 1rem 2rem rgba(0,0,0,.2)}.dropdown .dropdown-menu.dropdown-rounded{border-radius:16px}.dropdown .dropdown-menu.dropdown-no-border{border:none}.dropdown .dropdown-menu.dropdown-scrollable{max-height:300px;overflow-y:auto}.dropdown .dropdown-menu.dropdown-scrollable::-webkit-scrollbar{width:6px}.dropdown .dropdown-menu.dropdown-scrollable::-webkit-scrollbar-track{background:#f9fafb}.dropdown .dropdown-menu.dropdown-scrollable::-webkit-scrollbar-thumb{background:#9ca3af;border-radius:3px}.dropdown .dropdown-menu.dropdown-scrollable::-webkit-scrollbar-thumb:hover{background:#6b7280}.dropdown .dropdown-toggle{background:none;border:none;padding:8px 12px;background-color:#fff;border:1px solid #f3f4f6;border-radius:8px;cursor:pointer;color:#4b5563;transition:all .15s ease ease;display:flex;align-items:center;justify-content:space-between;min-width:120px;min-height:32px;gap:8px}.dropdown .dropdown-toggle:hover{color:#111827;background-color:#f9fafb}.dropdown .dropdown-toggle:focus:focus{outline:2px solid #3b82f6;outline-offset:2px}.dropdown .dropdown-toggle:focus:focus:not(:focus-visible){outline:none}.dropdown .dropdown-toggle .dropdown-text{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropdown .dropdown-toggle .dropdown-arrow{width:16px;height:16px;fill:currentColor;transition:transform .15s ease ease;flex-shrink:0}.dropdown:has(.dropdown-menu.show) .dropdown .dropdown-toggle .dropdown-arrow{transform:rotate(180deg)}.dropdown-sm .dropdown-toggle{min-width:28px;min-height:28px;padding:4px}.dropdown-sm .dropdown-toggle svg{width:14px;height:14px}.dropdown-sm .dropdown-menu{min-width:140px}.dropdown-sm .dropdown-menu .dropdown-item{padding:4px 8px;font-size:.75rem}.dropdown-lg .dropdown-toggle{min-width:40px;min-height:40px;padding:8px}.dropdown-lg .dropdown-toggle svg{width:18px;height:18px}.dropdown-lg .dropdown-menu{min-width:200px}.dropdown-lg .dropdown-menu .dropdown-item{padding:16px 24px;font-size:1rem}.dropdown-bordered .dropdown-menu{border:2px solid #f3f4f6}.dropdown-shadow-lg .dropdown-menu{box-shadow:0 1rem 2rem rgba(0,0,0,.2)}.dropdown-rounded .dropdown-menu{border-radius:16px}.dropdown-no-border .dropdown-menu{border:none}.dropdown-primary .dropdown-toggle{background-color:#3b82f6;border-color:#3b82f6;color:#fff}.dropdown-primary .dropdown-toggle:hover{background-color:rgb(11.1512195122,99.1219512195,242.8487804878);border-color:rgb(11.1512195122,99.1219512195,242.8487804878)}.dropdown-success .dropdown-toggle{background-color:#10b981;border-color:#10b981;color:#fff}.dropdown-success .dropdown-toggle:hover{background-color:rgb(11.9402985075,138.0597014925,96.2686567164);border-color:rgb(11.9402985075,138.0597014925,96.2686567164)}.dropdown-warning .dropdown-toggle{background-color:#f59e0b;border-color:#f59e0b;color:#111827}.dropdown-warning .dropdown-toggle:hover{background-color:rgb(196.9291338583,126.7125984252,8.0708661417);border-color:rgb(196.9291338583,126.7125984252,8.0708661417)}.dropdown-danger .dropdown-toggle{background-color:#ef4444;border-color:#ef4444;color:#fff}.dropdown-danger .dropdown-toggle:hover{background-color:hsl(0,84.236453202%,50.1960784314%);border-color:hsl(0,84.236453202%,50.1960784314%)}.dropdown-info .dropdown-toggle{background-color:#06b6d4;border-color:#06b6d4;color:#fff}.dropdown-info .dropdown-toggle:hover{background-color:rgb(4.5963302752,139.4220183486,162.4036697248);border-color:rgb(4.5963302752,139.4220183486,162.4036697248)}.dropdown-up .dropdown-menu{top:auto;bottom:100%;margin-bottom:4px}.dropdown-left .dropdown-menu{right:auto;left:0}.dropdown-right .dropdown-menu{left:auto;right:0}.dropdown-center .dropdown-menu{right:auto;left:50%;transform:translateX(-50%) translateY(-8px)}.dropdown-center .dropdown-menu.show{transform:translateX(-50%) translateY(0)}.dropdown-full-width{width:100%}.dropdown-full-width .dropdown-toggle{width:100%;justify-content:space-between}.dropdown-full-width .dropdown-menu{width:100%;min-width:100%}.dropdown-auto-width .dropdown-menu{width:auto;min-width:auto;white-space:nowrap}@media(max-width: 767px){.dropdown,.dropdown-container .dropdown-menu{min-width:180px;box-shadow:0 1rem 2rem rgba(0,0,0,.2)}}@media(prefers-reduced-motion: reduce){.dropdown .dropdown-toggle,.dropdown .dropdown-menu,.dropdown .dropdown-item,.dropdown-container .dropdown-toggle,.dropdown-container .dropdown-menu,.dropdown-container .dropdown-item{transition:none}}.empty-state{display:flex;align-items:center;justify-content:center;flex-direction:column;padding:32px;text-align:center;background:#fff;border-radius:12px;box-shadow:0 .125rem .25rem rgba(0,0,0,.05);border:1px solid #f3f4f6}@media(max-width: 767px){.empty-state{padding:24px}}.empty-icon{display:flex;align-items:center;justify-content:center;width:80px;height:80px;border-radius:50%;color:#fff;font-size:2.5rem;margin-bottom:24px}@media(max-width: 767px){.empty-icon{width:60px;height:60px;font-size:2rem}}.empty-message h3{font-size:1.5rem;font-weight:700;color:#111827;margin:0 0 8px 0}@media(max-width: 767px){.empty-message h3{font-size:1.25rem}}.empty-message p{font-size:1rem;color:#4b5563;line-height:1.5;margin:0}@media(max-width: 767px){.empty-message p{font-size:.875rem}}.empty-state-sm{padding:16px}.empty-state-sm .empty-icon{width:60px;height:60px;font-size:1.5rem;margin-bottom:16px}.empty-state-sm .empty-message h3{font-size:1.25rem;margin-bottom:4px}.empty-state-sm .empty-message p{font-size:.875rem}.empty-state-lg{padding:48px}.empty-state-lg .empty-icon{width:100px;height:100px;font-size:3rem;margin-bottom:32px}.empty-state-lg .empty-message h3{font-size:2rem;margin-bottom:16px}.empty-state-lg .empty-message p{font-size:1.125rem}.empty-state-bordered{border:2px solid #f3f4f6}.empty-state-no-shadow{box-shadow:none}.empty-state-rounded{border-radius:12px}.empty-state-compact{padding:16px}.empty-state-compact .empty-icon{margin-bottom:8px}.empty-state-compact .empty-message h3{margin-bottom:4px}.empty-state-primary .empty-icon{background-color:#3b82f6}.empty-state-secondary .empty-icon{background-color:#6b7280}.empty-state-success .empty-icon{background-color:#10b981}.empty-state-warning .empty-icon{background-color:#f59e0b}.empty-state-danger .empty-icon{background-color:#ef4444}.empty-state-info .empty-icon{background-color:#06b6d4}.empty-state-horizontal{flex-direction:row;text-align:left}.empty-state-horizontal .empty-icon{margin-bottom:0;margin-right:24px}@media(max-width: 767px){.empty-state-horizontal{flex-direction:column;text-align:center}.empty-state-horizontal .empty-icon{margin-right:0;margin-bottom:16px}}.empty-state-vertical{flex-direction:column;text-align:center}.empty-state-with-action .empty-message{margin-bottom:16px}.empty-state-with-action .empty-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.empty-state-with-action .empty-actions .btn{min-width:120px}.empty-state-animated .empty-icon{animation:emptyStatePulse 2s ease-in-out infinite}@keyframes emptyStatePulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.8}}.empty-state-full-width{width:100%}.empty-state-centered{margin:0 auto}@media(max-width: 767px){.empty-state-responsive{padding:16px}.empty-state-responsive .empty-icon{width:50px;height:50px;font-size:1.25rem}.empty-state-responsive .empty-message h3{font-size:1rem}.empty-state-responsive .empty-message p{font-size:.75rem}}.dewp-modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:1040;opacity:0;visibility:hidden;transition:all .3s ease}.dewp-modal{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%) scale(0.9);background:#fff;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.3);z-index:1050;opacity:0;visibility:hidden;transition:all .3s ease;overflow:hidden;max-width:90vw;max-height:90vh}.dewp-modal-sm{width:320px;max-width:90vw}.dewp-modal-md{width:480px;max-width:90vw}.dewp-modal-lg{width:720px;max-width:90vw}.dewp-modal-xl{width:960px;max-width:90vw}.dewp-modal-full{width:95vw;height:95vh;top:2.5vh;left:2.5vw;transform:none}.dewp-modal-header{padding:16px 20px;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center}.dewp-modal-header h3{margin:0;font-size:18px;font-weight:600;color:#111827}.dewp-modal-close{background:none;border:none;font-size:24px;color:#6b7280;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.dewp-modal-close:hover{background-color:#f3f4f6;color:#374151}.dewp-modal-close:focus{outline:none;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.dewp-modal-body{padding:20px;overflow-y:auto;max-height:calc(90vh - 120px);color:#374151;line-height:1.5}.dewp-modal-footer{padding:16px 20px;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:12px;background-color:#fff}.dewp-modal-cancel{padding:8px 16px;border:1px solid #d1d5db;background:#fff;color:#374151;border-radius:6px;cursor:pointer;font-size:14px;transition:all .2s ease}.dewp-modal-cancel:hover{background-color:#f9fafb;border-color:#9ca3af}.dewp-modal-cancel:focus{outline:none;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.dewp-modal-confirm{padding:8px 16px;border:1px solid #3b82f6;background:#3b82f6;color:#fff;border-radius:6px;cursor:pointer;font-size:14px;transition:all .2s ease}.dewp-modal-confirm:hover{background-color:#2563eb;border-color:#2563eb}.dewp-modal-confirm:focus{outline:none;box-shadow:0 0 0 3px rgba(59,130,246,.1)}@media(max-width: 768px){.dewp-modal-sm,.dewp-modal-md,.dewp-modal-lg,.dewp-modal-xl{width:95vw;max-width:95vw}.dewp-modal-full{width:100vw;height:100vh;top:0;left:0;transform:none;border-radius:0}}.notice{display:flex;align-items:flex-start;gap:12px;padding:16px;border-radius:8px;margin-bottom:16px;background-color:#fff;border:1px solid #e5e7eb;box-shadow:0 1px 3px rgba(0,0,0,.1);transition:all .2s ease}.notice:last-child{margin-bottom:0}.notice .notice-icon{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:16px;border-radius:50%;color:#fff;font-weight:bold}.notice .notice-content{flex:1;min-width:0}.notice .notice-content h3{margin:0 0 4px 0;font-size:14px;font-weight:600;color:inherit;line-height:1.4}.notice .notice-content p{margin:0;font-size:13px;line-height:1.5;color:inherit;word-break:keep-all}.notice .notice-content a{color:inherit;text-decoration:underline;font-weight:500}.notice .notice-content a:hover{text-decoration:none}.notice .notice-content strong{font-weight:600;margin-bottom:4px;display:block}.notice .notice-content ul{margin:8px 0 0 0;padding-left:20px}.notice .notice-content ul li{margin-bottom:4px;font-size:13px;line-height:1.4}.notice .notice-close{background:none;border:none;cursor:pointer;padding:4px;font-size:18px;color:#6b7280;opacity:.7;transition:all .2s ease;border-radius:4px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.notice .notice-close:hover{opacity:1;background-color:#f3f4f6;color:#374151}.notice .notice-close:focus{outline:2px solid #3b82f6;outline-offset:2px}.notice.notice-info{background-color:#eff6ff;border-color:#3b82f6;color:#1e40af}.notice.notice-info .notice-icon{background-color:#3b82f6}.notice.notice-success{background-color:#f0fdf4;border-color:#22c55e;color:#15803d}.notice.notice-success .notice-icon{background-color:#22c55e}.notice.notice-warning{background-color:#fffbeb;border-color:#f59e0b;color:#a16207}.notice.notice-warning .notice-icon{background-color:#f59e0b}.notice.notice-danger{background-color:#fef2f2;border-color:#ef4444;color:#b91c1c}.notice.notice-danger .notice-icon{background-color:#ef4444}.notice.notice-primary{background-color:#f0f9ff;border-color:#0ea5e9;color:#0369a1}.notice.notice-primary .notice-icon{background-color:#0ea5e9}.notice.notice-secondary{background-color:#f8fafc;border-color:#64748b;color:#334155}.notice.notice-secondary .notice-icon{background-color:#64748b}.notice.notice-sm{padding:12px;gap:10px}.notice.notice-sm .notice-icon{width:16px;height:16px;font-size:12px}.notice.notice-sm .notice-content h3{font-size:13px;margin-bottom:3px}.notice.notice-sm .notice-content p{font-size:12px}.notice.notice-sm .notice-close{width:20px;height:20px;font-size:16px;padding:2px}.notice.notice-lg{padding:20px;gap:16px}.notice.notice-lg .notice-icon{width:24px;height:24px;font-size:18px}.notice.notice-lg .notice-content h3{font-size:16px;margin-bottom:6px}.notice.notice-lg .notice-content p{font-size:14px}.notice.notice-lg .notice-close{width:28px;height:28px;font-size:20px;padding:4px}.notice.notice-bordered{border-width:2px}.notice.notice-rounded{border-radius:12px}.notice.notice-no-shadow{box-shadow:none}.notice.notice-elevated{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.notice.notice-dismissible .notice-close{display:flex}.notice.notice-non-dismissible .notice-close{display:none}@media(max-width: 768px){.notice{flex-direction:column;gap:12px;text-align:center;padding:16px}.notice .notice-icon{margin:0 auto}.notice .notice-content{text-align:center}.notice .notice-content h3{margin-bottom:6px}.notice .notice-close{align-self:center}}.notice.notice-fade-in{animation:noticeFadeIn .3s ease-out}.notice.notice-slide-in{animation:noticeSlideIn .3s ease-out}.notice.notice-auto-hide{animation:noticeAutoHide 5s ease-in-out forwards}@keyframes noticeFadeIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes noticeSlideIn{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes noticeAutoHide{0%,80%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(100%)}}.notice-group .notice{margin-bottom:12px}.notice-group .notice:last-child{margin-bottom:0}.notice-stack{position:fixed;top:20px;right:20px;z-index:1000;max-width:400px;pointer-events:none}.notice-stack .notice{margin-bottom:12px;pointer-events:auto;animation:noticeSlideIn .3s ease-out}.notice-stack .notice:last-child{margin-bottom:0}@media(max-width: 768px){.notice-stack{top:10px;right:10px;left:10px;max-width:none}}.notice-fixed{position:fixed;top:20px;right:20px;z-index:1000;max-width:400px;pointer-events:none}.notice-fixed .notice{pointer-events:auto}@media(max-width: 768px){.notice-fixed{top:10px;right:10px;left:10px;max-width:none}}.notice-sticky{position:sticky;top:20px;z-index:100}@media(prefers-color-scheme: dark){.notice{background-color:#1f2937;border-color:#374151;color:#f9fafb}.notice.notice-info{background-color:#1e3a8a;border-color:#3b82f6;color:#dbeafe}.notice.notice-success{background-color:#14532d;border-color:#22c55e;color:#bbf7d0}.notice.notice-warning{background-color:#78350f;border-color:#f59e0b;color:#fef3c7}.notice.notice-danger{background-color:#7f1d1d;border-color:#ef4444;color:#fecaca}.notice.notice-primary{background-color:#0c4a6e;border-color:#0ea5e9;color:#bae6fd}.notice.notice-secondary{background-color:#374151;border-color:#6b7280;color:#d1d5db}.notice .notice-close{color:#9ca3af}.notice .notice-close:hover{background-color:#374151;color:#d1d5db}}.pagination{display:flex;align-items:center;justify-content:center;gap:8px;margin:24px 0}.pagination .page-item{list-style:none}.pagination .page-item .page-link{display:flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:8px 12px;font-size:14px;font-weight:500;color:#6b7280;background-color:#fff;border:1px solid #e5e7eb;border-radius:6px;text-decoration:none;transition:all .2s ease}.pagination .page-item .page-link:hover{color:#3b82f6;background-color:#f8fafc;border-color:#3b82f6;z-index:2}.pagination .page-item .page-link:focus{outline:none;box-shadow:0 0 0 3px rgba(59,130,246,.1);z-index:3}.pagination .page-item.active .page-link{color:#fff;background-color:#3b82f6;border-color:#3b82f6;font-weight:600}.pagination .page-item.disabled .page-link{color:#9ca3af;background-color:#f9fafb;border-color:#e5e7eb;cursor:not-allowed;opacity:.6}.pagination .page-item.disabled .page-link:hover{color:#9ca3af;background-color:#f9fafb;border-color:#e5e7eb}.pagination-sm .page-item .page-link{min-width:32px;height:32px;padding:6px;font-size:12px}.pagination-lg .page-item .page-link{min-width:48px;height:48px;padding:12px 16px;font-size:16px}.pagination-justify-start{justify-content:flex-start}.pagination-justify-center{justify-content:center}.pagination-justify-end{justify-content:flex-end}.pagination-justify-between{justify-content:space-between}.pagination-rounded .page-item .page-link{border-radius:50%}.pagination-capsule .page-item:first-child .page-link{border-top-left-radius:20px;border-bottom-left-radius:20px}.pagination-capsule .page-item:last-child .page-link{border-top-right-radius:20px;border-bottom-right-radius:20px}@media(max-width: 768px){.pagination{flex-wrap:wrap;gap:6px}.pagination .page-item .page-link{min-width:36px;height:36px;padding:8px;font-size:12px}}.table{width:100%;margin-bottom:16px;color:#111827;background-color:#fff;border-collapse:collapse;border:1px solid #f3f4f6;border-radius:12px;overflow:hidden}.table th,.table td{padding:8px 16px;text-align:left;vertical-align:middle;border-bottom:1px solid #f3f4f6}.table th{background-color:#f9fafb;font-weight:600;color:#111827;border-bottom:2px solid #f3f4f6;white-space:nowrap;cursor:pointer;transition:background-color .15s ease}.table th:hover{background-color:rgb(239.82,242.35,244.88)}.table th.sortable{position:relative;padding-right:2.5rem}.table th.sortable::after{content:"↕";position:absolute;right:8px;top:50%;transform:translateY(-50%);opacity:.5;font-size:.75rem;transition:opacity .15s ease}.table th.sortable:hover::after{opacity:.8}.table th.sortable.sort-asc::after{content:"↑";opacity:1}.table th.sortable.sort-desc::after{content:"↓";opacity:1}.table td{border-bottom:1px solid #f3f4f6}.table td:last-child{text-align:right}.table tbody tr{transition:background-color .15s ease}.table tbody tr:hover{background-color:rgba(59,130,246,.02)}.table tbody tr:last-child td{border-bottom:none}.table tfoot th,.table tfoot td{background-color:#f9fafb;font-weight:500}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(249,250,251,.5)}.table-striped tbody tr:nth-of-type(odd):hover{background-color:rgba(59,130,246,.05)}.table-hover tbody tr:hover{background-color:rgba(59,130,246,.05)}.table-bordered th,.table-bordered td{border:1px solid #f3f4f6}.table-borderless th,.table-borderless td{border:none}.table-sm th,.table-sm td{padding:4px 8px;font-size:.875rem}.table-lg th,.table-lg td{padding:16px 24px;font-size:1.125rem}.table-primary th{background-color:#3b82f6;color:#fff;border-color:#3b82f6}.table-primary tbody tr:hover{background-color:rgba(59,130,246,.1)}.table-secondary th{background-color:#6b7280;color:#fff;border-color:#6b7280}.table-secondary tbody tr:hover{background-color:rgba(107,114,128,.1)}.table-success th{background-color:#10b981;color:#fff;border-color:#10b981}.table-success tbody tr:hover{background-color:rgba(16,185,129,.1)}.table-warning th{background-color:#f59e0b;color:#111827;border-color:#f59e0b}.table-warning tbody tr:hover{background-color:rgba(245,158,11,.1)}.table-danger th{background-color:#ef4444;color:#fff;border-color:#ef4444}.table-danger tbody tr:hover{background-color:rgba(239,68,68,.1)}.table-info th{background-color:#06b6d4;color:#fff;border-color:#06b6d4}.table-info tbody tr:hover{background-color:rgba(6,182,212,.1)}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive .table{margin-bottom:0}.table-centered th,.table-centered td{text-align:center}.table-right th,.table-right td{text-align:right}.form-table{margin-bottom:16px}.form-table th{width:160px;padding:8px 0;font-weight:600;color:#111827;text-align:left;vertical-align:top}.form-table td{padding:8px;vertical-align:top}.form-table td:last-child{padding-right:0}.form-table tr:last-child{border-bottom:none}.form-table textarea{resize:vertical}.form-table input[type=checkbox]{margin-right:8px}.form-table .description{font-size:.75rem;color:#6b7280;margin-top:4px;line-height:1.5}@media(max-width: 767px){.table-responsive .table{min-width:600px}.form-table th,.form-table td{display:block;width:100%;text-align:left}.form-table th{padding-bottom:4px;border-bottom:1px solid #f3f4f6}.form-table td{padding-top:8px;padding-bottom:16px}}.table-fixed{table-layout:fixed}.table-auto{table-layout:auto}.table-compact th,.table-compact td{padding:4px;font-size:.75rem}.table-expanded th,.table-expanded td{padding:24px 32px;font-size:1.125rem}.tabs{display:inline-flex;background:#f3f4f6;border-radius:8px;padding:4px;gap:4px}.tabs .tab-btn{appearance:none;color:#6b7280;font-size:14px;padding:8px 16px;font-weight:600;border:none;background:rgba(0,0,0,0);cursor:pointer;border-radius:6px;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;gap:8px;user-select:none;white-space:nowrap;pointer-events:auto}.tabs .tab-btn *{pointer-events:none}.tabs .tab-btn:hover{background:#fff;color:#374151}.tabs .tab-btn.active{background:#fff;color:#1f2937}.tabs .tab-btn .tab-count{background:#e5e7eb;color:#6b7280;font-size:12px;padding:2px 6px;border-radius:4px;font-weight:500;min-width:20px;text-align:center;line-height:1}.tabs .tab-btn:hover .tab-count,.tabs .tab-btn.active .tab-count{background:#3b82f6;color:#fff}.tabs-sm{padding:3px;gap:3px}.tabs-sm .tab-btn{padding:6px 12px;font-size:13px}.tabs-sm .tab-btn .tab-count{padding:1px 4px;font-size:11px;min-width:16px}.tabs-lg{padding:6px;gap:6px}.tabs-lg .tab-btn{padding:12px 20px;font-size:16px}.tabs-lg .tab-btn .tab-count{padding:3px 8px;font-size:14px;min-width:24px}.tabs-pills{background:rgba(0,0,0,0);border-radius:0;padding:0}.tabs-pills .tab-btn{border-radius:50px;padding:8px 20px}.tabs-pills .tab-btn.active{background:#3b82f6;color:#fff;box-shadow:0 2px 4px rgba(59,130,246,.3)}.tabs-pills .tab-btn.active .tab-count{background:hsla(0,0%,100%,.2);color:#fff}.tabs-pills .tab-btn:hover:not(.active){background:#f2f2f2;color:#374151}.tabs-basic{background:rgba(0,0,0,0);padding:0;gap:4px}.tabs-basic .tab-btn{border-radius:4px;padding:12px 16px}.tabs-basic .tab-btn.active{border-bottom-color:#3b82f6;background:#3b82f6;color:#fff;font-weight:600}.tabs-basic .tab-btn:hover:not(.active){background:#f2f2f2;color:#6b7280}.tabs-underline{background:rgba(0,0,0,0);padding:0;gap:0;border-bottom:1px solid #e5e7eb}.tabs-underline .tab-btn{border-radius:0;border-bottom:2px solid rgba(0,0,0,0);margin-bottom:-1px;padding:12px 20px}.tabs-underline .tab-btn.active{border-bottom-color:#3b82f6;background:rgba(0,0,0,0);color:#3b82f6;font-weight:600}.tabs-underline .tab-btn:hover:not(.active){background:rgba(0,0,0,0);color:#6b7280;border-bottom-color:#d1d5db}.tabs-vertical{flex-direction:column;align-items:stretch;background:rgba(0,0,0,0);padding:0;gap:0}.tabs-vertical .tab-btn{justify-content:flex-start;text-align:left;border-radius:0;border-left:3px solid rgba(0,0,0,0);padding:12px 20px}.tabs-vertical .tab-btn.active{border-left-color:#3b82f6;background:#f8fafc;color:#3b82f6;font-weight:600}.tabs-vertical .tab-btn:hover:not(.active){background:#f8fafc;color:#6b7280;border-left-color:#d1d5db}.tabs-primary .tab-btn.active{background:#3b82f6;color:#fff}.tabs-primary .tab-btn.active .tab-count{background:hsla(0,0%,100%,.2);color:#fff}.tabs-primary .tab-btn:hover:not(.active){background:rgba(59,130,246,.1);color:#3b82f6}.tabs-success .tab-btn.active{background:#22c55e;color:#fff}.tabs-success .tab-btn.active .tab-count{background:hsla(0,0%,100%,.2);color:#fff}.tabs-success .tab-btn:hover:not(.active){background:rgba(34,197,94,.1);color:#22c55e}.tabs-warning .tab-btn.active{background:#f59e0b;color:#fff}.tabs-warning .tab-btn.active .tab-count{background:hsla(0,0%,100%,.2);color:#fff}.tabs-warning .tab-btn:hover:not(.active){background:rgba(245,158,11,.1);color:#f59e0b}.tabs-danger .tab-btn.active{background:#ef4444;color:#fff}.tabs-danger .tab-btn.active .tab-count{background:hsla(0,0%,100%,.2);color:#fff}.tabs-danger .tab-btn:hover:not(.active){background:rgba(239,68,68,.1);color:#ef4444}.tabs-info .tab-btn.active{background:#06b6d4;color:#fff}.tabs-info .tab-btn.active .tab-count{background:hsla(0,0%,100%,.2);color:#fff}.tabs-info .tab-btn:hover:not(.active){background:rgba(6,182,212,.1);color:#06b6d4}.tabs-full{width:100%}.tabs-full .tab-btn{flex:1;justify-content:center}.tabs-justified{width:100%}.tabs-justified .tab-btn{flex:1;justify-content:center}.tabs-center{justify-content:center}.tabs-end{justify-content:flex-end}.tabs-between{justify-content:space-between}.tab-header{margin:24px 0}.tab-header h2{margin:0 0 12px 0;color:#1f2937;font-size:20px;display:flex;align-items:center;gap:12px}.tab-header h2 i{color:#3b82f6}.tab-header p{margin:0;color:#6b7280;font-size:16px;line-height:1.5}.tab-content .tab-panel{display:none}.tab-content .tab-panel.active{display:block;animation:fadeIn .3s ease-in-out}.tab-group .tabs{margin-bottom:24px}.tab-group .tab-content{padding:24px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;border-top-left-radius:0}@media(max-width: 768px){.tabs{flex-wrap:wrap;gap:4px}.tabs .tab-btn{flex:1;min-width:0;justify-content:center}.tabs-vertical{flex-direction:row;flex-wrap:wrap}.tabs-vertical .tab-btn{flex:1;min-width:0}}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.toast-container{position:fixed;top:16px;right:16px;z-index:1080;pointer-events:none;display:flex;flex-direction:column;gap:4px;max-width:400px}@media(max-width: 767px){.toast-container{top:4px;right:4px;left:4px;max-width:none}}.toast{background:#fff;border-radius:8px;border-left:2px solid;min-width:300px;opacity:0;transform:translateX(100%);transition:all .3s ease ease;pointer-events:auto;margin-bottom:0}@media(max-width: 767px){.toast{min-width:auto}}.toast.show{opacity:1;transform:translateX(0)}.toast.toast-success{border-left-color:#10b981}.toast.toast-success .toast-icon{color:#10b981}.toast.toast-error{border-left-color:#ef4444}.toast.toast-error .toast-icon{color:#ef4444}.toast.toast-warning{border-left-color:#f59e0b}.toast.toast-warning .toast-icon{color:#f59e0b}.toast.toast-info{border-left-color:#06b6d4}.toast.toast-info .toast-icon{color:#06b6d4}.toast-content{display:flex;align-items:center;padding:8px;gap:4px}.toast-icon{flex-shrink:0;font-size:1.125rem;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.toast-message{flex:1;font-size:.875rem;line-height:1.5;color:#111827}.toast-close{flex-shrink:0;background:none;border:none;color:#6b7280;font-size:1.125rem;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;transition:color .15s ease;border-radius:50%}.toast-close:hover{color:#4b5563;background-color:#f9fafb}.toast-close:focus:focus{outline:2px solid #3b82f6;outline-offset:2px}.toast-close:focus:focus:not(:focus-visible){outline:none}.toast-close span{line-height:1}.toast-container-top-left{top:16px;left:16px;right:auto}.toast-container-top-center{top:16px;left:50%;right:auto;transform:translateX(-50%)}.toast-container-top-right{top:16px;right:16px;left:auto}.toast-container-bottom-left{top:auto;bottom:16px;left:16px;right:auto}.toast-container-bottom-center{top:auto;bottom:16px;left:50%;right:auto;transform:translateX(-50%)}.toast-container-bottom-right{top:auto;bottom:16px;right:16px;left:auto}.toast-sm{min-width:250px}.toast-sm .toast-content{padding:4px}.toast-sm .toast-icon{font-size:.875rem;width:16px;height:16px}.toast-sm .toast-close{width:16px;height:16px;font-size:.875rem}.toast-lg{min-width:500px}.toast-lg .toast-content{padding:16px}.toast-lg .toast-icon{font-size:1.25rem;width:24px;height:24px}.toast-lg .toast-close{width:24px;height:24px;font-size:1.25rem}.toast-slide-in{animation:toastSlideIn .3s ease ease-out}.toast-slide-out{animation:toastSlideOut .3s ease ease-in}.toast-fade-in{animation:toastFadeIn .3s ease ease-out}.toast-fade-out{animation:toastFadeOut .3s ease ease-in}@keyframes toastSlideIn{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes toastSlideOut{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}@keyframes toastFadeIn{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes toastFadeOut{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}.toast-group .toast{margin-bottom:4px}.toast-group .toast:last-child{margin-bottom:0}.toast-auto-hide{animation:toastAutoHide 5s ease-in-out forwards}@keyframes toastAutoHide{0%,80%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(100%)}}.toast-stack .toast{margin-bottom:4px}.toast-stack .toast:last-child{margin-bottom:0}.toast-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);z-index:1079;pointer-events:none}@media(prefers-color-scheme: dark){.toast{background:#f9fafb;color:#111827}.toast .toast-message{color:#111827}.toast .toast-close{color:#6b7280}.toast .toast-close:hover{color:#4b5563;background-color:#f9fafb}}.toggle-label{display:flex;align-items:center;cursor:pointer;font-weight:500;color:#374151;margin:0;gap:12px}.toggle-label .toggle-input{display:none}.toggle-label .toggle-slider{position:relative;width:50px;height:24px;background:#d1d5db;border-radius:999px;transition:all .2s ease}.toggle-label .toggle-slider::before{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:all .2s ease;box-shadow:0 1px 3px rgba(0,0,0,.1)}.toggle-label .toggle-text{font-size:14px;font-weight:500;color:#374151}.toggle-label .toggle-input:checked+.toggle-slider{background:#3b82f6}.toggle-label .toggle-input:checked+.toggle-slider::before{transform:translateX(26px)}.toggle-label:hover .toggle-slider{box-shadow:0 2px 4px rgba(0,0,0,.15)}.toggle-label.toggle-disabled{opacity:.6;cursor:not-allowed}.toggle-label.toggle-disabled .toggle-slider{cursor:not-allowed}.toggle-label.toggle-disabled .toggle-text{cursor:not-allowed}.toggle-sm .toggle-slider{width:40px;height:20px}.toggle-sm .toggle-slider::before{width:16px;height:16px;top:2px;left:2px}.toggle-sm .toggle-input:checked+.toggle-slider::before{transform:translateX(20px)}.toggle-lg .toggle-slider{width:60px;height:32px}.toggle-lg .toggle-slider::before{width:28px;height:28px;top:2px;left:2px}.toggle-lg .toggle-input:checked+.toggle-slider::before{transform:translateX(28px)}@media(max-width: 768px){.toggle-label{gap:10px}.toggle-label .toggle-text{font-size:13px}}.form-group{margin-bottom:16px}.form-group:last-child{margin-bottom:0}.form-row{display:flex;flex-wrap:wrap;margin:0 -8px}.form-row .form-group{flex:1;margin:0 8px 16px;min-width:200px}.form-label{display:block;font-size:.875rem;font-weight:500;color:#111827;margin-bottom:4px;line-height:1.5}.form-label.required::after{content:" *";color:#ef4444}.form-label-inline{display:inline-block;margin-right:12px;margin-bottom:0}.form-input,.form-textarea,.form-select{display:block;width:100%;padding:8px 12px;font-size:1rem;line-height:1.5;color:#111827;background-color:#fff;border:1px solid #f3f4f6;border-radius:8px;transition:all .15s ease ease;box-sizing:border-box}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.form-input:disabled,.form-textarea:disabled,.form-select:disabled{background-color:#f3f4f6;color:#6b7280;cursor:not-allowed;opacity:.6}.form-input::placeholder,.form-textarea::placeholder,.form-select::placeholder{color:#6b7280;opacity:1}.form-input.form-input-error,.form-textarea.form-input-error,.form-select.form-input-error{border-color:#ef4444}.form-input.form-input-error:focus,.form-textarea.form-input-error:focus,.form-select.form-input-error:focus{box-shadow:0 0 0 3px rgba(239,68,68,.1)}.form-input.form-input-success,.form-textarea.form-input-success,.form-select.form-input-success{border-color:#10b981}.form-input.form-input-success:focus,.form-textarea.form-input-success:focus,.form-select.form-input-success:focus{box-shadow:0 0 0 3px rgba(16,185,129,.1)}.form-input{height:40px}.form-textarea{min-height:100px;resize:vertical}.form-select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");background-position:right 8px center;background-repeat:no-repeat;background-size:16px 12px;padding-right:24px;appearance:none}.form-select::-ms-expand{display:none}.form-check{display:flex;align-items:flex-start;margin-bottom:8px}.form-check:last-child{margin-bottom:0}.form-check-input{flex-shrink:0;width:18px;height:18px;margin:2px 8px 0 0;cursor:pointer}.form-check-label{font-size:1rem;line-height:1.5;color:#111827;cursor:pointer;user-select:none}.form-check-group .form-check{margin-bottom:8px}.form-checkbox .form-check-input{appearance:none;border:2px solid #e5e7eb;border-radius:4px;background-color:#fff;transition:all .15s ease ease}.form-checkbox .form-check-input:checked{background-color:#3b82f6;border-color:#3b82f6;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");background-size:12px;background-position:center;background-repeat:no-repeat}.form-checkbox .form-check-input:focus{outline:none;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.form-checkbox .form-check-input:disabled{background-color:#f3f4f6;border-color:#f3f4f6;cursor:not-allowed;opacity:.6}.form-radio .form-check-input{appearance:none;border:2px solid #e5e7eb;border-radius:50%;background-color:#fff;transition:all .15s ease ease}.form-radio .form-check-input:checked{background-color:#3b82f6;border-color:#3b82f6;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='%23fff' d='M10 15a5 5 0 1 0 0-10 5 5 0 0 0 0 10Z'/%3e%3c/svg%3e");background-size:8px;background-position:center;background-repeat:no-repeat}.form-radio .form-check-input:focus{outline:none;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.form-radio .form-check-input:disabled{background-color:#f3f4f6;border-color:#f3f4f6;cursor:not-allowed;opacity:.6}.form-file{position:relative;display:inline-block;width:100%}.form-file-input{position:absolute;left:-9999px;opacity:0;width:0;height:0}.form-file-label{display:flex;align-items:center;justify-content:center;width:100%;height:40px;padding:8px 12px;font-size:1rem;line-height:1.5;color:#111827;background-color:#fff;border:2px dashed #e5e7eb;border-radius:8px;cursor:pointer;transition:all .15s ease ease}.form-file-label:hover{border-color:#3b82f6;background-color:#f9fafb}.form-file-label .form-file-icon{margin-right:8px;color:#6b7280}.form-input-group{display:flex;align-items:stretch;width:100%}.form-input-group .form-input,.form-input-group .form-select{border-radius:0;border-right:none}.form-input-group .form-input:first-child,.form-input-group .form-select:first-child{border-top-left-radius:8px;border-bottom-left-radius:8px}.form-input-group .form-input:last-child,.form-input-group .form-select:last-child{border-right:1px solid #f3f4f6;border-top-right-radius:8px;border-bottom-right-radius:8px}.form-input-group .form-input-group-text{display:flex;align-items:center;padding:8px 12px;font-size:.875rem;font-weight:500;color:#4b5563;background-color:#f9fafb;border:1px solid #f3f4f6;border-right:none;white-space:nowrap}.form-input-group .form-input-group-text:first-child{border-top-left-radius:8px;border-bottom-left-radius:8px}.form-input-group .form-input-group-text:last-child{border-right:1px solid #f3f4f6;border-top-right-radius:8px;border-bottom-right-radius:8px}.form-help{display:block;font-size:.75rem;color:#6b7280;margin-top:4px;line-height:1.5}.form-error{display:block;font-size:.75rem;color:#ef4444;margin-top:4px;line-height:1.5}.form-success{display:block;font-size:.75rem;color:#10b981;margin-top:4px;line-height:1.5}.form-input-sm{height:32px;padding:4px 8px;font-size:.875rem}.form-input-lg{height:48px;padding:12px 16px;font-size:1.25rem}.form-group.has-error .form-label{color:#ef4444}.form-group.has-error .form-input,.form-group.has-error .form-textarea,.form-group.has-error .form-select{border-color:#ef4444}.form-group.has-error .form-input:focus,.form-group.has-error .form-textarea:focus,.form-group.has-error .form-select:focus{box-shadow:0 0 0 3px rgba(239,68,68,.1)}.form-group.has-success .form-input,.form-group.has-success .form-textarea,.form-group.has-success .form-select{border-color:#10b981}.form-group.has-success .form-input:focus,.form-group.has-success .form-textarea:focus,.form-group.has-success .form-select:focus{box-shadow:0 0 0 3px rgba(16,185,129,.1)}@media(max-width: 767px){.form-row{flex-direction:column}.form-row .form-group{margin:0 0 16px 0;min-width:auto}.form-input-group{flex-direction:column}.form-input-group .form-input,.form-input-group .form-select,.form-input-group .form-input-group-text{border-radius:8px;border-right:1px solid #f3f4f6;margin-bottom:4px}.form-input-group .form-input:last-child,.form-input-group .form-select:last-child,.form-input-group .form-input-group-text:last-child{margin-bottom:0}}.form-required{color:#ef4444}.form-disabled{opacity:.6;pointer-events:none}.form-readonly{background-color:#f3f4f6;cursor:not-allowed}
@@ -0,0 +1 @@
1
+ var DEWP=function(t){"use strict";function e(t,e,n,o){t.addEventListener(e,n,o)}function n(){return"loading"!==document.readyState}function o(t){n()?t():e(document,"DOMContentLoaded",t,{once:!0})}"undefined"!=typeof window&&(window.DEWP={});const s=new class{constructor(){this.container=null,this.init()}init(){this.createContainer()}createContainer(){const t=document.getElementById("dewp-toast-container");t&&t.remove(),this.container=document.createElement("div"),this.container.id="dewp-toast-container",this.container.className="toast-container toast-container-top-right",document.body.appendChild(this.container)}show(t,e="info",n=5e3){console.log("🔔 토스트 표시:",{message:t,type:e,duration:n}),this.container||this.createContainer();const o="dewp-toast-"+Date.now(),s=this.createToastElement(o,t,e);try{Array.from(this.container.querySelectorAll(".toast .toast-message")).some(e=>e.textContent===String(t))&&this.hideAll()}catch(t){}return this.container.appendChild(s),requestAnimationFrame(()=>{s.classList.add("show"),s.classList.add("toast-slide-in")}),n>0&&setTimeout(()=>{this.hide(o)},n),o}createToastElement(t,e,n){const o=document.createElement("div");o.id=t,o.className=`toast toast-${n}`;const s=document.createElement("div");s.className="toast-content";const i=document.createElement("span");i.className="toast-icon",i.innerHTML=this.getTypeIcon(n);const a=document.createElement("div");a.className="toast-message",a.textContent=e;const r=document.createElement("button");return r.className="toast-close",r.type="button",r.innerHTML="<span>×</span>",r.setAttribute("aria-label","토스트 닫기"),r.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation(),this.hide(t)}),s.appendChild(i),s.appendChild(a),s.appendChild(r),o.appendChild(s),o}getTypeIcon(t){return{info:"ℹ️",success:"✅",warning:"⚠️",error:"❌"}[t]}hide(t){const e=document.getElementById(t);e&&(e.classList.remove("show","toast-slide-in"),e.classList.add("toast-slide-out"),setTimeout(()=>{e.parentNode&&e.parentNode.removeChild(e)},300))}hideAll(){if(this.container){this.container.querySelectorAll(".toast").forEach(t=>{const e=t.id;e&&this.hide(e)})}}success(t,e){return this.show(t,"success",e)}error(t,e){return this.show(t,"error",e)}warning(t,e){return this.show(t,"warning",e)}info(t,e){return this.show(t,"info",e)}};const i=new class{constructor(){this.modals=new Map,this.activeModal=null,this.backdrop=null,this.zIndex=1050,this.init()}init(){this.createBackdrop(),this.bindEvents()}createBackdrop(){this.backdrop=document.createElement("div"),this.backdrop.className="dewp-modal-backdrop",document.body.appendChild(this.backdrop)}bindEvents(){document.addEventListener("keydown",t=>{"Escape"===t.key&&this.activeModal&&this.close(this.activeModal.id)}),this.backdrop&&this.backdrop.addEventListener("click",()=>{this.activeModal&&this.close(this.activeModal.id)})}create(t={}){const e="dewp-modal-"+Date.now(),n=this.createModalElement(e,t);return this.modals.set(e,n),document.body.appendChild(n),e}createModalElement(t,e){const n=document.createElement("div");n.id=t,n.className="dewp-modal";const o=e.size||"md";if(n.className=`dewp-modal ${{sm:"dewp-modal-sm",md:"dewp-modal-md",lg:"dewp-modal-lg",xl:"dewp-modal-xl",full:"dewp-modal-full"}[o]}`,e.title){const o=document.createElement("div");o.className="dewp-modal-header";const s=document.createElement("h3");if(s.textContent=e.title,o.appendChild(s),!1!==e.closable){const e=document.createElement("button");e.className="dewp-modal-close",e.innerHTML="×",e.addEventListener("click",()=>{this.close(t)}),o.appendChild(e)}n.appendChild(o)}if(e.content){const t=document.createElement("div");t.className="dewp-modal-body","string"==typeof e.content?t.innerHTML=e.content:t.appendChild(e.content),n.appendChild(t)}if(e.showCancel||e.confirmText){const o=document.createElement("div");if(o.className="dewp-modal-footer",e.showCancel){const n=document.createElement("button");n.className="dewp-modal-cancel",n.textContent=e.cancelText||"취소",n.addEventListener("click",()=>{e.onCancel&&e.onCancel(),this.close(t)}),o.appendChild(n)}if(e.confirmText){const n=document.createElement("button");n.className="dewp-modal-confirm",n.textContent=e.confirmText,n.addEventListener("click",()=>{e.onConfirm&&e.onConfirm(),this.close(t)}),o.appendChild(n)}n.appendChild(o)}return n}open(t){const e=this.modals.get(t);e&&(this.activeModal=e,this.showBackdrop(),e.style.opacity="1",e.style.visibility="visible",e.style.transform="translate(-50%, -50%) scale(1)",e.querySelector("button")&&e.querySelector("button").focus())}close(t){const e=this.modals.get(t);e&&(e.style.opacity="0",e.style.visibility="hidden",e.style.transform="translate(-50%, -50%) scale(0.9)",setTimeout(()=>{e.parentNode&&e.parentNode.removeChild(e),this.modals.delete(t),this.activeModal===e&&(this.activeModal=null,this.hideBackdrop())},300))}showBackdrop(){this.backdrop&&(this.backdrop.style.opacity="1",this.backdrop.style.visibility="visible")}hideBackdrop(){this.backdrop&&(this.backdrop.style.opacity="0",this.backdrop.style.visibility="hidden")}show(t={}){const e=this.create(t);return this.open(e),e}confirm(t){const e=this.create({title:t.title||"확인",content:t.message,confirmText:t.confirmText||"확인",cancelText:"취소",showCancel:!0,onConfirm:t.onConfirm,onCancel:t.onCancel});this.open(e)}alert(t,e){const n=this.create({title:e||"알림",content:t,confirmText:"확인"});this.open(n)}getModal(t){return this.modals.get(t)}isOpen(t){const e=this.modals.get(t);return!!e&&"visible"===e.style.visibility}closeAll(){this.modals.forEach((t,e)=>{this.close(e)})}};const a=new class{constructor(){this.dropdowns=new Map,this.activeDropdown=null,this.zIndex=1e3,this.init()}init(){this.bindGlobalEvents()}bindGlobalEvents(){document.addEventListener("click",t=>{if(this.activeDropdown){const e=t.target,n=this.activeDropdown.trigger.contains(e),o=this.activeDropdown.element.contains(e);n||o||this.hide(this.activeDropdown.id)}}),document.addEventListener("keydown",t=>{"Escape"===t.key&&this.activeDropdown&&this.hide(this.activeDropdown.id)}),window.addEventListener("resize",()=>{this.activeDropdown&&this.positionDropdown(this.activeDropdown)}),window.addEventListener("scroll",()=>{this.activeDropdown&&this.positionDropdown(this.activeDropdown)},!0)}create(t){const e="dewp-dropdown-"+Date.now();console.log("🔽 드롭다운 생성 시작:",e);const n="string"==typeof t.trigger?document.querySelector(t.trigger):t.trigger;if(!n)throw console.error("🔽 드롭다운 트리거 요소를 찾을 수 없음:",t.trigger),new Error("드롭다운 트리거 요소를 찾을 수 없습니다.");console.log("🔽 트리거 요소 찾음:",n);const o=this.findDropdownContainer(n);if(!o)throw console.error("🔽 드롭다운 컨테이너를 찾을 수 없음"),new Error("드롭다운 컨테이너를 찾을 수 없습니다. .dropdown 클래스가 있는 부모 요소가 필요합니다.");console.log("🔽 컨테이너 찾음:",o);const s=this.createDropdownElement(e,t);console.log("🔽 드롭다운 요소 생성됨:",s);const i={id:e,element:s,options:t,trigger:n,container:o};return this.dropdowns.set(e,i),console.log("🔽 드롭다운 인스턴스 저장됨:",e),o.appendChild(s),console.log("🔽 컨테이너에 드롭다운 추가됨"),this.bindTriggerEvents(i),console.log("🔽 트리거 이벤트 바인딩 완료"),this.updateTriggerText(i,t.placeholder||"선택하세요"),console.log("🔽 초기 텍스트 설정 완료"),console.log("🔽 드롭다운 생성 완료:",e),e}findDropdownContainer(t){let e=t.parentElement;for(;e;){if(e.classList.contains("dropdown"))return e;e=e.parentElement}return null}createDropdownElement(t,e){const n=document.createElement("div");return n.id=t,n.className="dropdown-menu","string"==typeof e.content?n.innerHTML=e.content:n.appendChild(e.content),this.bindDropdownItemEvents(n,t),n}bindDropdownItemEvents(t,e){t.querySelectorAll(".dropdown-item").forEach(t=>{t.addEventListener("click",n=>{n.preventDefault(),n.stopPropagation();const o=t.getAttribute("data-value")||t.textContent||"",s=t.textContent||"";this.selectItem(e,o,s),this.hide(e)})})}selectItem(t,e,n){const o=this.dropdowns.get(t);o&&(o.selectedValue=e,o.selectedText=n,this.updateTriggerText(o,n),o.options.onSelect&&o.options.onSelect(e,n))}updateTriggerText(t,e){const n=t.trigger,o=n.querySelector(".dropdown-text");if(o)o.textContent=e;else{const t=Array.from(n.childNodes).find(t=>{var e;return t.nodeType===Node.TEXT_NODE&&(null===(e=t.textContent)||void 0===e?void 0:e.trim())});if(t)t.textContent=e;else{const t=document.createTextNode(e);n.insertBefore(t,n.firstChild)}}}bindTriggerEvents(t){const{trigger:e,id:n}=t;e.addEventListener("click",t=>{t.preventDefault(),t.stopPropagation(),this.activeDropdown&&this.activeDropdown.id===n?this.hide(n):(this.activeDropdown&&this.hide(this.activeDropdown.id),this.show(n))})}show(t){const e=this.dropdowns.get(t);e&&(this.activeDropdown&&this.activeDropdown.id!==t&&this.hide(this.activeDropdown.id),this.activeDropdown=e,this.positionDropdown(e),e.element.classList.add("show"),e.options.onShow&&e.options.onShow())}hide(t){const e=this.dropdowns.get(t);e&&(e.element.classList.remove("show"),this.activeDropdown&&this.activeDropdown.id===t&&(this.activeDropdown=null),e.options.onHide&&e.options.onHide())}positionDropdown(t){const{element:e,trigger:n,options:o}=t,s=o.position||"bottom",i=o.align||"start",a=o.offset||8,r=n.getBoundingClientRect(),c=t.container.getBoundingClientRect(),d=e.getBoundingClientRect();let l=0,h=0;switch(s){case"bottom":l=r.bottom-c.top+a;break;case"top":l=r.top-c.top-d.height-a;break;case"left":h=r.left-c.left-d.width-a,l=r.top-c.top+r.height/2-d.height/2;break;case"right":h=r.right-c.left+a,l=r.top-c.top+r.height/2-d.height/2}switch(i){case"center":"top"!==s&&"bottom"!==s||(h=r.left-c.left+r.width/2-d.width/2);break;case"end":"top"!==s&&"bottom"!==s||(h=r.right-c.left-d.width);break;default:"top"!==s&&"bottom"!==s||(h=r.left-c.left)}e.style.top=`${l}px`,e.style.left=`${h}px`,e.style.zIndex=""+this.zIndex++}toggle(t){this.dropdowns.get(t)&&(this.activeDropdown&&this.activeDropdown.id===t?this.hide(t):this.show(t))}getSelectedValue(t){const e=this.dropdowns.get(t);return null==e?void 0:e.selectedValue}getSelectedText(t){const e=this.dropdowns.get(t);return null==e?void 0:e.selectedText}setValue(t,e,n){this.dropdowns.get(t)&&this.selectItem(t,e,n)}getDropdown(t){var e;return null===(e=this.dropdowns.get(t))||void 0===e?void 0:e.element}isOpen(t){const e=this.dropdowns.get(t);return!!e&&e.element.classList.contains("show")}closeAll(){this.dropdowns.forEach((t,e)=>{this.hide(e)})}destroy(t){const e=this.dropdowns.get(t);e&&(this.hide(t),e.element.parentNode&&e.element.parentNode.removeChild(e.element),this.dropdowns.delete(t))}};const r=new class{constructor(){this.tabInstances=new Map,this.autoInit()}autoInit(){"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>this.autoInitTabs()):this.autoInitTabs()}autoInitTabs(){document.querySelectorAll("[data-tabs]").forEach(t=>{t.getAttribute("data-tabs")||t.id||Date.now(),this.initTabs(t,{container:t})})}initTabs(t,e){const n=t.id||"tabs-"+Date.now();this.tabInstances.has(n)&&this.destroy(n);const o=this.findTabElements(t),s=this.findPanelElements(t);if(0===o.size||0===s.size)throw new Error("탭 또는 패널 요소를 찾을 수 없습니다.");const i={id:n,container:t,options:e,tabs:o,panels:s,activeTabId:null};this.tabInstances.set(n,i),this.bindTabEvents(i);const a=e.activeTab||Array.from(o.keys())[0];return this.activateTab(n,a),n}findTabElements(t){const e=new Map;if(t.querySelectorAll("[data-tab]").forEach(t=>{const n=t.getAttribute("data-tab");n&&e.set(n,t)}),0===e.size){t.querySelectorAll(".tab-btn").forEach((t,n)=>{const o=t.getAttribute("data-tab")||`tab-${n}`;e.set(o,t)})}return e}findPanelElements(t){const e=new Map;if(t.querySelectorAll("[data-panel]").forEach(t=>{const n=t.getAttribute("data-panel");n&&e.set(n,t)}),0===e.size){t.querySelectorAll(".tab-panel").forEach((t,n)=>{const o=t.getAttribute("data-panel")||`panel-${n}`;e.set(o,t)})}return e}bindTabEvents(t){const{tabs:e,container:n}=t;e.forEach((e,n)=>{e.addEventListener("click",e=>{e.preventDefault(),this.activateTab(t.id,n)})})}activateTab(t,e){const n=this.tabInstances.get(t);if(!n)return;const{tabs:o,panels:s,activeTabId:i,options:a}=n,r=o.get(e),c=s.get(e);if(!r||!c)return;if(i){const t=o.get(i),e=s.get(i);t&&(t.classList.remove("active"),t.setAttribute("aria-selected","false")),e&&(e.classList.remove("active"),e.setAttribute("aria-hidden","true"))}r.classList.add("active"),r.setAttribute("aria-selected","true"),c.classList.add("active"),c.setAttribute("aria-hidden","false");const d=n.activeTabId;n.activeTabId=e,a.onTabChange&&a.onTabChange(e,d||void 0),!1!==a.animation&&this.animateTabChange(c)}animateTabChange(t){t.style.opacity="0",t.style.transform="translateY(10px)",requestAnimationFrame(()=>{t.style.transition="all 0.3s ease",t.style.opacity="1",t.style.transform="translateY(0)"})}getActiveTab(t){const e=this.tabInstances.get(t);return e?e.activeTabId:null}getTabInstance(t){return this.tabInstances.get(t)}destroy(t){const e=this.tabInstances.get(t);e&&(e.tabs.forEach(t=>{t.replaceWith(t.cloneNode(!0))}),this.tabInstances.delete(t))}destroyAll(){this.tabInstances.forEach((t,e)=>{this.destroy(e)})}},c={qs:function(t,e=document){return e.querySelector(t)},qsa:function(t,e=document){return Array.from(e.querySelectorAll(t))},create:function(t,e={}){const n=document.createElement(t);return Object.assign(n,e),n},addClass:function(t,e){t.classList.add(e)},removeClass:function(t,e){t.classList.remove(e)},toggleClass:function(t,e,n){return t.classList.toggle(e,n)},hasClass:function(t,e){return t.classList.contains(e)},setText:function(t,e){t.textContent=e},setHTML:function(t,e){t.innerHTML=e},on:e,off:function(t,e,n,o){t.removeEventListener(e,n,o)},remove:function(t){t.remove()},append:function(t,e){t.appendChild(e)},insertBefore:function(t,e,n){t.insertBefore(e,n)},clearChildren:function(t){for(;t.firstChild;)t.removeChild(t.firstChild)},setStyle:function(t,e,n){t.style.setProperty(e,n)},setData:function(t,e,n){t.setAttribute(`data-${e}`,n)},getData:function(t,e){return t.getAttribute(`data-${e}`)},isDOMReady:n,onDOMReady:o,isElementVisible:function(t,e=0){return new Promise(n=>{const o=new IntersectionObserver(([t])=>{o.disconnect(),n(t.isIntersecting)},{threshold:e});o.observe(t)})},scrollToElement:function(t,e="smooth"){t.scrollIntoView({behavior:e,block:"start"})},getElementRect:function(t){return t.getBoundingClientRect()},isChildOf:function(t,e){return e.contains(t)},showToast:(t,e,n)=>s.show(t,e||"info",n),showSuccessToast:(t,e)=>s.success(t,e),showWarningToast:(t,e)=>s.warning(t,e),showErrorToast:(t,e)=>s.error(t,e),showInfoToast:(t,e)=>s.info(t,e),createModal:(t={})=>i.create(t),openModal:t=>{i.open(t)},closeModal:t=>{i.close(t)},showModal:(t={})=>i.show(t),showConfirmModal:t=>{i.confirm(t)},createDropdown:t=>a.create(t),toggleDropdown:t=>{a.toggle(t)},showDropdown:t=>{a.show(t)},hideDropdown:t=>{a.hide(t)},closeAllDropdowns:()=>{a.closeAll()},getSelectedValue:t=>a.getSelectedValue(t),getSelectedText:t=>a.getSelectedText(t),setDropdownValue:(t,e,n)=>a.setValue(t,e,n),initTabs:(t,e)=>r.initTabs(t,e||{container:t}),activateTab:(t,e)=>{r.activateTab(t,e)},getActiveTab:t=>r.getActiveTab(t),getTabInstance:t=>r.getTabInstance(t),destroyTabs:t=>{r.destroy(t)},ready:o,version:"1.0.0",info:{name:"DesignBase WordPress Library",description:"간단하고 강력한 프론트엔드 라이브러리",version:"1.0.0",author:"DesignBase",license:"MIT"}};if("undefined"!=typeof window){const t=window.DEWP={};Object.keys(c).forEach(e=>{t[e]=c[e]}),console.log("🚀 DEWP 라이브러리 전역 객체 설정 완료"),console.log("window.DEWP:",window.DEWP),console.log("사용 가능한 함수들:",Object.keys(window.DEWP))}return t.DEWP=c,t}({});
package/package.json ADDED
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "designbase-wp-library",
3
+ "version": "0.1.0",
4
+ "description": "Reusable CSS/JS kit for WordPress plugins (frontend/admin).",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./dist/js/dewp.min.js",
10
+ "default": "./dist/js/dewp.min.js"
11
+ },
12
+ "./styles.css": "./dist/css/dewp.min.css"
13
+ },
14
+ "files": [
15
+ "dist"
16
+ ],
17
+ "scripts": {
18
+ "clean": "rimraf dist",
19
+ "build:css": "sass src/styles/scss/main.scss:dist/css/dewp.min.css --style=compressed --no-source-map",
20
+ "build:css:watch": "sass src/styles/scss/main.scss:dist/css/dewp.min.css --watch",
21
+ "build:js": "rollup -c",
22
+ "build:js:watch": "rollup -c -w",
23
+ "build": "npm run clean && npm run build:css && npm run build:js",
24
+ "build:prod": "npm run clean && npm run build:css && npm run build:js",
25
+ "dev": "npm run build:css:watch & npm run build:js:watch",
26
+ "dev:js": "npm run build:js:watch",
27
+ "dev:css": "npm run build:css:watch",
28
+ "prepublishOnly": "npm run build:prod",
29
+ "changeset": "changeset",
30
+ "version": "changeset version",
31
+ "release": "npm run build && changeset publish",
32
+ "preview": "npm run build && npm pack --dry-run"
33
+ },
34
+ "devDependencies": {
35
+ "@rollup/plugin-commonjs": "^26.0.0",
36
+ "@rollup/plugin-node-resolve": "^15.2.3",
37
+ "@rollup/plugin-terser": "^0.4.4",
38
+ "@rollup/plugin-typescript": "^11.1.6",
39
+ "autoprefixer": "^10.4.19",
40
+ "postcss": "^8.4.41",
41
+ "postcss-cli": "^11.0.0",
42
+ "postcss-csso": "^6.0.1",
43
+ "postcss-import": "^16.1.0",
44
+ "postcss-nesting": "^12.1.5",
45
+ "rimraf": "^6.0.1",
46
+ "rollup": "^4.21.3",
47
+ "rollup-plugin-scss": "^4.0.1",
48
+ "sass": "^1.69.0",
49
+ "tslib": "^2.6.2",
50
+ "typescript": "^5.5.4"
51
+ }
52
+ }