@@ -108,5 +108,251 @@ function handleButtonClick() {
108108</template >
109109
110110<style scoped>
111- @import " @/components/platformcapabilities/styles/capabilityCard.css" ;
111+ .capability-card {
112+ background : var (--card-bg , #fff );
113+ border : 1px solid var (--border-color , #e0e0e0 );
114+ border-radius : 8px ;
115+ padding : 20px ;
116+ margin-bottom : 16px ;
117+ transition : all 0.2s ease ;
118+ position : relative ;
119+ min-height : 150px ;
120+ }
121+
122+ .capability-available {
123+ border-left : 4px solid var (--success-color , #28a745 );
124+ }
125+
126+ .capability-unavailable {
127+ border-left : 4px solid var (--danger-color , #dc3545 );
128+ }
129+
130+ .capability-partially-unavailable {
131+ border-left : 4px solid var (--warning-color , #ffc107 );
132+ }
133+
134+ .capability-loading {
135+ border-left : 4px solid var (--border-color , #e0e0e0 );
136+ }
137+
138+ .capability-notconfigured {
139+ background : linear-gradient (135deg , #f6f9fc 0% , #e9f2f9 100% );
140+ border : 1px solid #c3ddf5 ;
141+ border-left : 4px solid #007bff ;
142+ }
143+
144+ .text-info {
145+ color : #007bff ;
146+ }
147+
148+ .text-warning {
149+ color : var (--warning-color , #ffc107 );
150+ }
151+
152+ .loading-overlay {
153+ position : absolute ;
154+ top : 0 ;
155+ left : 0 ;
156+ right : 0 ;
157+ bottom : 0 ;
158+ background : rgba (255 , 255 , 255 , 0.9 );
159+ display : flex ;
160+ flex-direction : column ;
161+ align-items : center ;
162+ justify-content : center ;
163+ border-radius : 8px ;
164+ z-index : 10 ;
165+ }
166+
167+ .loading-spinner {
168+ width : 40px ;
169+ height : 40px ;
170+ border : 3px solid var (--border-color , #e0e0e0 );
171+ border-top-color : var (--primary-color , #007bff );
172+ border-radius : 50% ;
173+ animation : spin 0.8s linear infinite ;
174+ }
175+
176+ @keyframes spin {
177+ to {
178+ transform : rotate (360deg );
179+ }
180+ }
181+
182+ .loading-text {
183+ margin-top : 12px ;
184+ color : var (--text-secondary , #666 );
185+ font-size : 14px ;
186+ }
187+
188+ .capability-header {
189+ display : flex ;
190+ align-items : flex-start ;
191+ gap : 16px ;
192+ margin-bottom : 12px ;
193+ }
194+
195+ .capability-icon {
196+ font-size : 24px ;
197+ flex-shrink : 0 ;
198+ margin-top : 2px ;
199+ }
200+
201+ .capability-info {
202+ flex : 1 ;
203+ min-width : 0 ;
204+ }
205+
206+ .capability-title-row {
207+ display : flex ;
208+ align-items : center ;
209+ gap : 12px ;
210+ margin-bottom : 4px ;
211+ }
212+
213+ .capability-title {
214+ font-size : 18px ;
215+ font-weight : 600 ;
216+ color : var (--text-primary , #333 );
217+ }
218+
219+ .status-indicators {
220+ display : flex ;
221+ gap : 12px ;
222+ align-items : center ;
223+ }
224+
225+ .indicator-item {
226+ display : flex ;
227+ align-items : center ;
228+ gap : 4px ;
229+ cursor : help ;
230+ }
231+
232+ .indicator-light {
233+ font-size : 10px ;
234+ }
235+
236+ .light-success {
237+ color : var (--success-color , #28a745 );
238+ }
239+
240+ .light-warning {
241+ color : var (--warning-color , #ffc107 );
242+ }
243+
244+ .light-danger {
245+ color : var (--danger-color , #dc3545 );
246+ }
247+
248+ .indicator-label {
249+ font-size : 12px ;
250+ color : var (--text-secondary , #666 );
251+ white-space : nowrap ;
252+ }
253+
254+ .capability-subtitle {
255+ font-size : 14px ;
256+ color : var (--text-secondary , #666 );
257+ line-height : 1.4 ;
258+ }
259+
260+ .capability-status {
261+ display : flex ;
262+ flex-direction : column ;
263+ align-items : flex-end ;
264+ gap : 4px ;
265+ }
266+
267+ .status-badge {
268+ padding : 4px 12px ;
269+ border-radius : 12px ;
270+ font-size : 12px ;
271+ font-weight : 600 ;
272+ text-transform : uppercase ;
273+ letter-spacing : 0.5px ;
274+ }
275+
276+ .status-available {
277+ background-color : #d4edda ;
278+ color : #155724 ;
279+ }
280+
281+ .status-unavailable {
282+ background-color : #f8d7da ;
283+ color : #721c24 ;
284+ }
285+
286+ .status-partially-unavailable {
287+ background-color : #fff3cd ;
288+ color : #856404 ;
289+ }
290+
291+ .capability-footer {
292+ display : flex ;
293+ justify-content : space-between ;
294+ align-items : center ;
295+ gap : 16px ;
296+ margin-top : 12px ;
297+ padding-top : 12px ;
298+ border-top : 1px solid var (--border-color , #e0e0e0 );
299+ }
300+
301+ .capability-description {
302+ flex : 1 ;
303+ font-size : 13px ;
304+ color : var (--text-secondary , #666 );
305+ line-height : 1.5 ;
306+ overflow : hidden ;
307+ text-overflow : ellipsis ;
308+ display : -webkit-box ;
309+ -webkit-line-clamp : 2 ;
310+ line-clamp : 2 ;
311+ -webkit-box-orient : vertical ;
312+ }
313+
314+ .learn-more-btn {
315+ padding : 8px 16px ;
316+ border-radius : 4px ;
317+ text-decoration : none ;
318+ font-size : 14px ;
319+ font-weight : 500 ;
320+ transition : all 0.2s ease ;
321+ white-space : nowrap ;
322+ border : 1px solid transparent ;
323+ }
324+
325+ .learn-more-btn.btn-primary {
326+ background-color : var (--primary-color , #007bff );
327+ color : white ;
328+ border-color : var (--primary-color , #007bff );
329+ }
330+
331+ .learn-more-btn.btn-primary :hover {
332+ background-color : var (--primary-hover-color , #0056b3 );
333+ border-color : var (--primary-hover-color , #0056b3 );
334+ }
335+
336+ /* Responsive adjustments */
337+ @media (max-width : 768px ) {
338+ .capability-header {
339+ flex-direction : column ;
340+ }
341+
342+ .capability-status {
343+ align-items : flex-start ;
344+ flex-direction : row ;
345+ gap : 8px ;
346+ }
347+
348+ .capability-footer {
349+ flex-direction : column ;
350+ align-items : flex-start ;
351+ }
352+
353+ .learn-more-btn {
354+ width : 100% ;
355+ text-align : center ;
356+ }
357+ }
112358 </style >
0 commit comments