This commit is contained in:
usmannasir
2025-08-05 02:28:40 +05:00
parent 6f8ddf05b3
commit ab6a9403cc
5 changed files with 120 additions and 125 deletions

12
.idea/workspace.xml generated
View File

@@ -6,16 +6,8 @@
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="5251c5c9-f2a1-41f2-bc76-10b517091df1" name="Changes" comment=""> <list default="true" id="5251c5c9-f2a1-41f2-bc76-10b517091df1" name="Changes" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/emailMarketing/templates/emailMarketing/composeMessages.html" beforeDir="false" afterPath="$PROJECT_DIR$/emailMarketing/templates/emailMarketing/composeMessages.html" afterDir="false" /> <change beforePath="$PROJECT_DIR$/emailPremium/templates/emailPremium/MailScanner.html" beforeDir="false" afterPath="$PROJECT_DIR$/emailPremium/templates/emailPremium/MailScanner.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/emailMarketing/templates/emailMarketing/configureVerify.html" beforeDir="false" afterPath="$PROJECT_DIR$/emailMarketing/templates/emailMarketing/configureVerify.html" afterDir="false" /> <change beforePath="$PROJECT_DIR$/emailPremium/templates/emailPremium/Rspamd.html" beforeDir="false" afterPath="$PROJECT_DIR$/emailPremium/templates/emailPremium/Rspamd.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/emailMarketing/templates/emailMarketing/createEmailList.html" beforeDir="false" afterPath="$PROJECT_DIR$/emailMarketing/templates/emailMarketing/createEmailList.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/emailMarketing/templates/emailMarketing/emailMarketing.html" beforeDir="false" afterPath="$PROJECT_DIR$/emailMarketing/templates/emailMarketing/emailMarketing.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/emailMarketing/templates/emailMarketing/manageLists.html" beforeDir="false" afterPath="$PROJECT_DIR$/emailMarketing/templates/emailMarketing/manageLists.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/emailMarketing/templates/emailMarketing/manageSMTPHosts.html" beforeDir="false" afterPath="$PROJECT_DIR$/emailMarketing/templates/emailMarketing/manageSMTPHosts.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/emailMarketing/templates/emailMarketing/sendEmails.html" beforeDir="false" afterPath="$PROJECT_DIR$/emailMarketing/templates/emailMarketing/sendEmails.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/emailMarketing/templates/emailMarketing/website.html" beforeDir="false" afterPath="$PROJECT_DIR$/emailMarketing/templates/emailMarketing/website.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/emailPremium/templates/emailPremium/SpamAssassin.html" beforeDir="false" afterPath="$PROJECT_DIR$/emailPremium/templates/emailPremium/SpamAssassin.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/emailPremium/templates/emailPremium/mailQueue.html" beforeDir="false" afterPath="$PROJECT_DIR$/emailPremium/templates/emailPremium/mailQueue.html" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />

View File

@@ -17,18 +17,18 @@
/* Page Header */ /* Page Header */
.page-header { .page-header {
background: white; background: var(--bg-primary, white);
border-radius: 12px; border-radius: 12px;
padding: 25px; padding: 25px;
margin-bottom: 25px; margin-bottom: 25px;
box-shadow: 0 2px 8px rgba(0,0,0,0.08); box-shadow: 0 2px 8px rgba(0,0,0,0.08);
border: 1px solid #e8e9ff; border: 1px solid var(--border-light, #e8e9ff);
} }
.page-header h1 { .page-header h1 {
font-size: 28px; font-size: 28px;
font-weight: 700; font-weight: 700;
color: #2f3640; color: var(--text-primary, #2f3640);
margin: 0 0 10px 0; margin: 0 0 10px 0;
display: flex; display: flex;
align-items: center; align-items: center;
@@ -50,18 +50,18 @@
.page-header p { .page-header p {
font-size: 15px; font-size: 15px;
color: #64748b; color: var(--text-secondary, #64748b);
margin: 0; margin: 0;
} }
/* Content Section */ /* Content Section */
.content-section { .content-section {
background: white; background: var(--bg-primary, white);
border-radius: 12px; border-radius: 12px;
padding: 25px; padding: 25px;
margin-bottom: 25px; margin-bottom: 25px;
box-shadow: 0 2px 8px rgba(0,0,0,0.08); box-shadow: 0 2px 8px rgba(0,0,0,0.08);
border: 1px solid #e8e9ff; border: 1px solid var(--border-light, #e8e9ff);
} }
/* Installation Section */ /* Installation Section */
@@ -73,7 +73,7 @@
.install-icon { .install-icon {
width: 80px; width: 80px;
height: 80px; height: 80px;
background: #f8f9ff; background: var(--bg-secondary, #f8f9ff);
border-radius: 50%; border-radius: 50%;
display: flex; display: flex;
align-items: center; align-items: center;
@@ -86,13 +86,13 @@
.install-title { .install-title {
font-size: 24px; font-size: 24px;
font-weight: 700; font-weight: 700;
color: #2f3640; color: var(--text-primary, #2f3640);
margin-bottom: 10px; margin-bottom: 10px;
} }
.install-description { .install-description {
font-size: 16px; font-size: 16px;
color: #64748b; color: var(--text-secondary, #64748b);
margin-bottom: 25px; margin-bottom: 25px;
} }
@@ -127,7 +127,7 @@
.access-icon { .access-icon {
width: 80px; width: 80px;
height: 80px; height: 80px;
background: #d1fae5; background: var(--success-bg, #d1fae5);
border-radius: 50%; border-radius: 50%;
display: flex; display: flex;
align-items: center; align-items: center;
@@ -140,13 +140,13 @@
.access-title { .access-title {
font-size: 24px; font-size: 24px;
font-weight: 700; font-weight: 700;
color: #2f3640; color: var(--text-primary, #2f3640);
margin-bottom: 10px; margin-bottom: 10px;
} }
.access-description { .access-description {
font-size: 16px; font-size: 16px;
color: #64748b; color: var(--text-secondary, #64748b);
margin-bottom: 25px; margin-bottom: 25px;
} }
@@ -177,8 +177,8 @@
/* Installation Log */ /* Installation Log */
.install-log { .install-log {
background: #f8f9ff; background: var(--bg-secondary, #f8f9ff);
border: 1px solid #e8e9ff; border: 1px solid var(--border-light, #e8e9ff);
border-radius: 8px; border-radius: 8px;
padding: 15px; padding: 15px;
margin-top: 20px; margin-top: 20px;
@@ -194,17 +194,17 @@
.install-log-title { .install-log-title {
font-size: 16px; font-size: 16px;
font-weight: 600; font-weight: 600;
color: #2f3640; color: var(--text-primary, #2f3640);
} }
.log-textarea { .log-textarea {
width: 100%; width: 100%;
padding: 12px 15px; padding: 12px 15px;
border: 1px solid #e8e9ff; border: 1px solid var(--border-light, #e8e9ff);
border-radius: 8px; border-radius: 8px;
font-size: 13px; font-size: 13px;
color: #2f3640; color: var(--text-primary, #2f3640);
background: white; background: var(--bg-primary, white);
resize: vertical; resize: vertical;
font-family: 'Monaco', 'Consolas', monospace; font-family: 'Monaco', 'Consolas', monospace;
line-height: 1.5; line-height: 1.5;
@@ -227,9 +227,9 @@
} }
.alert-success { .alert-success {
background: #d1fae5; background: var(--success-bg, #d1fae5);
color: #065f46; color: var(--success-text, #065f46);
border: 1px solid #a7f3d0; border: 1px solid var(--success-border, #a7f3d0);
} }
.alert-success .alert-icon { .alert-success .alert-icon {
@@ -237,9 +237,9 @@
} }
.alert-danger { .alert-danger {
background: #fee2e2; background: var(--error-bg, #fee2e2);
color: #991b1b; color: var(--error-text, #991b1b);
border: 1px solid #fecaca; border: 1px solid var(--error-border, #fecaca);
} }
.alert-danger .alert-icon { .alert-danger .alert-icon {
@@ -250,7 +250,7 @@
.loading-spinner { .loading-spinner {
width: 24px; width: 24px;
height: 24px; height: 24px;
border: 3px solid #e8e9ff; border: 3px solid var(--border-light, #e8e9ff);
border-top-color: #5856d6; border-top-color: #5856d6;
border-radius: 50%; border-radius: 50%;
animation: spin 1s linear infinite; animation: spin 1s linear infinite;
@@ -272,7 +272,7 @@
} }
.feature-card { .feature-card {
background: #f8f9ff; background: var(--bg-secondary, #f8f9ff);
border-radius: 12px; border-radius: 12px;
padding: 20px; padding: 20px;
text-align: center; text-align: center;
@@ -300,13 +300,13 @@
.feature-title { .feature-title {
font-size: 16px; font-size: 16px;
font-weight: 600; font-weight: 600;
color: #2f3640; color: var(--text-primary, #2f3640);
margin-bottom: 8px; margin-bottom: 8px;
} }
.feature-description { .feature-description {
font-size: 14px; font-size: 14px;
color: #64748b; color: var(--text-secondary, #64748b);
} }
/* Responsive */ /* Responsive */

View File

@@ -17,18 +17,18 @@
/* Page Header */ /* Page Header */
.page-header { .page-header {
background: white; background: var(--bg-primary, white);
border-radius: 12px; border-radius: 12px;
padding: 25px; padding: 25px;
margin-bottom: 25px; margin-bottom: 25px;
box-shadow: 0 2px 8px rgba(0,0,0,0.08); box-shadow: 0 2px 8px rgba(0,0,0,0.08);
border: 1px solid #e8e9ff; border: 1px solid var(--border-light, #e8e9ff);
} }
.page-header h1 { .page-header h1 {
font-size: 28px; font-size: 28px;
font-weight: 700; font-weight: 700;
color: #2f3640; color: var(--text-primary, #2f3640);
margin: 0 0 10px 0; margin: 0 0 10px 0;
display: flex; display: flex;
align-items: center; align-items: center;
@@ -50,24 +50,24 @@
.page-header p { .page-header p {
font-size: 15px; font-size: 15px;
color: #64748b; color: var(--text-secondary, #64748b);
margin: 0; margin: 0;
} }
/* Content Section */ /* Content Section */
.content-section { .content-section {
background: white; background: var(--bg-primary, white);
border-radius: 12px; border-radius: 12px;
padding: 25px; padding: 25px;
margin-bottom: 25px; margin-bottom: 25px;
box-shadow: 0 2px 8px rgba(0,0,0,0.08); box-shadow: 0 2px 8px rgba(0,0,0,0.08);
border: 1px solid #e8e9ff; border: 1px solid var(--border-light, #e8e9ff);
} }
.section-title { .section-title {
font-size: 18px; font-size: 18px;
font-weight: 700; font-weight: 700;
color: #2f3640; color: var(--text-primary, #2f3640);
margin-bottom: 20px; margin-bottom: 20px;
display: flex; display: flex;
align-items: center; align-items: center;
@@ -145,7 +145,7 @@
.install-icon { .install-icon {
width: 80px; width: 80px;
height: 80px; height: 80px;
background: #f8f9ff; background: var(--bg-secondary, #f8f9ff);
border-radius: 50%; border-radius: 50%;
display: flex; display: flex;
align-items: center; align-items: center;
@@ -158,13 +158,13 @@
.install-title { .install-title {
font-size: 24px; font-size: 24px;
font-weight: 700; font-weight: 700;
color: #2f3640; color: var(--text-primary, #2f3640);
margin-bottom: 10px; margin-bottom: 10px;
} }
.install-description { .install-description {
font-size: 16px; font-size: 16px;
color: #64748b; color: var(--text-secondary, #64748b);
margin-bottom: 25px; margin-bottom: 25px;
} }
@@ -176,7 +176,7 @@
.form-label { .form-label {
font-size: 14px; font-size: 14px;
font-weight: 600; font-weight: 600;
color: #2f3640; color: var(--text-primary, #2f3640);
margin-bottom: 8px; margin-bottom: 8px;
display: block; display: block;
text-transform: none; text-transform: none;
@@ -185,11 +185,11 @@
.form-control { .form-control {
width: 100%; width: 100%;
padding: 10px 15px; padding: 10px 15px;
border: 1px solid #e8e9ff; border: 1px solid var(--border-light, #e8e9ff);
border-radius: 8px; border-radius: 8px;
font-size: 14px; font-size: 14px;
color: #2f3640; color: var(--text-primary, #2f3640);
background: white; background: var(--bg-primary, white);
transition: all 0.3s ease; transition: all 0.3s ease;
} }
@@ -202,11 +202,11 @@
.form-select { .form-select {
width: 100%; width: 100%;
padding: 10px 15px; padding: 10px 15px;
border: 1px solid #e8e9ff; border: 1px solid var(--border-light, #e8e9ff);
border-radius: 8px; border-radius: 8px;
font-size: 14px; font-size: 14px;
color: #2f3640; color: var(--text-primary, #2f3640);
background: white; background: var(--bg-primary, white);
transition: all 0.3s ease; transition: all 0.3s ease;
cursor: pointer; cursor: pointer;
} }
@@ -224,12 +224,12 @@
width: 70px !important; width: 70px !important;
height: 32px !important; height: 32px !important;
border-radius: 8px !important; border-radius: 8px !important;
border: 1px solid #e8e9ff !important; border: 1px solid var(--border-light, #e8e9ff) !important;
} }
.toggle.off { .toggle.off {
background: #f8f9ff !important; background: var(--bg-secondary, #f8f9ff) !important;
border-color: #e8e9ff !important; border-color: var(--border-light, #e8e9ff) !important;
} }
.toggle.btn-success { .toggle.btn-success {
@@ -278,14 +278,14 @@
.toggle-off { .toggle-off {
background: transparent !important; background: transparent !important;
color: #64748b !important; color: var(--text-secondary, #64748b) !important;
box-shadow: none !important; box-shadow: none !important;
} }
.btn-secondary { .btn-secondary {
background: #f8f9ff !important; background: var(--bg-secondary, #f8f9ff) !important;
border-color: #e8e9ff !important; border-color: var(--border-light, #e8e9ff) !important;
color: #64748b !important; color: var(--text-secondary, #64748b) !important;
} }
/* Fix for Bootstrap Toggle visibility */ /* Fix for Bootstrap Toggle visibility */
@@ -318,7 +318,7 @@
.toggle-label-text { .toggle-label-text {
font-size: 14px; font-size: 14px;
color: #2f3640; color: var(--text-primary, #2f3640);
font-weight: 500; font-weight: 500;
} }
@@ -347,8 +347,8 @@
/* Installation Log */ /* Installation Log */
.install-log { .install-log {
background: #f8f9ff; background: var(--bg-secondary, #f8f9ff);
border: 1px solid #e8e9ff; border: 1px solid var(--border-light, #e8e9ff);
border-radius: 8px; border-radius: 8px;
padding: 15px; padding: 15px;
margin-top: 20px; margin-top: 20px;
@@ -364,17 +364,17 @@
.install-log-title { .install-log-title {
font-size: 16px; font-size: 16px;
font-weight: 600; font-weight: 600;
color: #2f3640; color: var(--text-primary, #2f3640);
} }
.log-textarea { .log-textarea {
width: 100%; width: 100%;
padding: 12px 15px; padding: 12px 15px;
border: 1px solid #e8e9ff; border: 1px solid var(--border-light, #e8e9ff);
border-radius: 8px; border-radius: 8px;
font-size: 13px; font-size: 13px;
color: #2f3640; color: var(--text-primary, #2f3640);
background: white; background: var(--bg-primary, white);
resize: vertical; resize: vertical;
font-family: 'Monaco', 'Consolas', monospace; font-family: 'Monaco', 'Consolas', monospace;
line-height: 1.5; line-height: 1.5;
@@ -397,9 +397,9 @@
} }
.alert-success { .alert-success {
background: #d1fae5; background: var(--alert-success-bg, #d1fae5);
color: #065f46; color: var(--alert-success-text, #065f46);
border: 1px solid #a7f3d0; border: 1px solid var(--alert-success-border, #a7f3d0);
} }
.alert-success .alert-icon { .alert-success .alert-icon {
@@ -407,9 +407,9 @@
} }
.alert-danger { .alert-danger {
background: #fee2e2; background: var(--alert-danger-bg, #fee2e2);
color: #991b1b; color: var(--alert-danger-text, #991b1b);
border: 1px solid #fecaca; border: 1px solid var(--alert-danger-border, #fecaca);
} }
.alert-danger .alert-icon { .alert-danger .alert-icon {
@@ -418,8 +418,8 @@
/* Warning Box */ /* Warning Box */
.warning-box { .warning-box {
background: #fef3c7; background: var(--alert-warning-bg, #fef3c7);
border: 1px solid #fde68a; border: 1px solid var(--alert-warning-border, #fde68a);
border-radius: 8px; border-radius: 8px;
padding: 15px; padding: 15px;
margin-bottom: 20px; margin-bottom: 20px;
@@ -436,7 +436,7 @@
.warning-text { .warning-text {
font-size: 14px; font-size: 14px;
color: #92400e; color: var(--alert-warning-text, #92400e);
line-height: 1.5; line-height: 1.5;
} }
@@ -445,11 +445,12 @@
border: none; border: none;
border-radius: 12px; border-radius: 12px;
box-shadow: 0 10px 40px rgba(0,0,0,0.15); box-shadow: 0 10px 40px rgba(0,0,0,0.15);
background: var(--bg-primary, white);
} }
.modal-header { .modal-header {
background: #f8f9ff; background: var(--bg-secondary, #f8f9ff);
border-bottom: 1px solid #e8e9ff; border-bottom: 1px solid var(--border-light, #e8e9ff);
border-radius: 12px 12px 0 0; border-radius: 12px 12px 0 0;
padding: 20px; padding: 20px;
display: flex; display: flex;
@@ -460,17 +461,19 @@
.modal-title { .modal-title {
font-size: 20px; font-size: 20px;
font-weight: 700; font-weight: 700;
color: #2f3640; color: var(--text-primary, #2f3640);
margin: 0; margin: 0;
} }
.modal-body { .modal-body {
padding: 25px; padding: 25px;
background: var(--bg-primary, white);
color: var(--text-primary, #2f3640);
} }
.modal-footer { .modal-footer {
background: #f8f9ff; background: var(--bg-secondary, #f8f9ff);
border-top: 1px solid #e8e9ff; border-top: 1px solid var(--border-light, #e8e9ff);
border-radius: 0 0 12px 12px; border-radius: 0 0 12px 12px;
padding: 15px 20px; padding: 15px 20px;
display: flex; display: flex;
@@ -502,21 +505,21 @@
} }
.modal-btn.secondary { .modal-btn.secondary {
background: white; background: var(--bg-primary, white);
color: #64748b; color: var(--text-secondary, #64748b);
border: 1px solid #e8e9ff; border: 1px solid var(--border-light, #e8e9ff);
} }
.modal-btn.secondary:hover { .modal-btn.secondary:hover {
background: #f8f9ff; background: var(--bg-secondary, #f8f9ff);
color: #2f3640; color: var(--text-primary, #2f3640);
} }
/* Loading Spinner */ /* Loading Spinner */
.loading-spinner { .loading-spinner {
width: 24px; width: 24px;
height: 24px; height: 24px;
border: 3px solid #e8e9ff; border: 3px solid var(--border-light, #e8e9ff);
border-top-color: #5856d6; border-top-color: #5856d6;
border-radius: 50%; border-radius: 50%;
animation: spin 1s linear infinite; animation: spin 1s linear infinite;
@@ -532,7 +535,7 @@
/* Help Text */ /* Help Text */
.help-text { .help-text {
font-size: 13px; font-size: 13px;
color: #94a3b8; color: var(--text-muted, #94a3b8);
margin-top: 5px; margin-top: 5px;
} }
@@ -996,7 +999,7 @@
</div> </div>
<div class="modal-body"> <div class="modal-body">
<p>{% trans "Do you want to uninstall Rspamd?" %}</p> <p>{% trans "Do you want to uninstall Rspamd?" %}</p>
<p class="text-danger">{% trans "This action cannot be undone." %}</p> <p style="color: var(--text-danger, #dc2626);">{% trans "This action cannot be undone." %}</p>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="modal-btn primary" data-dismiss="modal" ng-click="unistallRspamd()"> <button type="button" class="modal-btn primary" data-dismiss="modal" ng-click="unistallRspamd()">

View File

@@ -17,18 +17,18 @@
/* Page Header */ /* Page Header */
.page-header { .page-header {
background: white; background: var(--bg-primary, white);
border-radius: 12px; border-radius: 12px;
padding: 25px; padding: 25px;
margin-bottom: 25px; margin-bottom: 25px;
box-shadow: 0 2px 8px rgba(0,0,0,0.08); box-shadow: 0 2px 8px rgba(0,0,0,0.08);
border: 1px solid #e8e9ff; border: 1px solid var(--border-color, #e8e9ff);
} }
.page-header h1 { .page-header h1 {
font-size: 28px; font-size: 28px;
font-weight: 700; font-weight: 700;
color: #2f3640; color: var(--text-primary, #2f3640);
margin: 0 0 10px 0; margin: 0 0 10px 0;
display: flex; display: flex;
align-items: center; align-items: center;
@@ -50,24 +50,24 @@
.page-header p { .page-header p {
font-size: 15px; font-size: 15px;
color: #64748b; color: var(--text-secondary, #64748b);
margin: 0; margin: 0;
} }
/* Content Section */ /* Content Section */
.content-section { .content-section {
background: white; background: var(--bg-primary, white);
border-radius: 12px; border-radius: 12px;
padding: 25px; padding: 25px;
margin-bottom: 25px; margin-bottom: 25px;
box-shadow: 0 2px 8px rgba(0,0,0,0.08); box-shadow: 0 2px 8px rgba(0,0,0,0.08);
border: 1px solid #e8e9ff; border: 1px solid var(--border-color, #e8e9ff);
} }
.section-title { .section-title {
font-size: 18px; font-size: 18px;
font-weight: 700; font-weight: 700;
color: #2f3640; color: var(--text-primary, #2f3640);
margin-bottom: 20px; margin-bottom: 20px;
display: flex; display: flex;
align-items: center; align-items: center;
@@ -90,8 +90,8 @@
} }
.app-card { .app-card {
background: white; background: var(--bg-primary, white);
border: 1px solid #e8e9ff; border: 1px solid var(--border-color, #e8e9ff);
border-radius: 12px; border-radius: 12px;
padding: 25px; padding: 25px;
transition: all 0.3s ease; transition: all 0.3s ease;
@@ -137,7 +137,7 @@
justify-content: center; justify-content: center;
flex-shrink: 0; flex-shrink: 0;
overflow: hidden; overflow: hidden;
background: #f8f9ff; background: var(--bg-secondary, #f8f9ff);
padding: 12px; padding: 12px;
} }
@@ -154,7 +154,7 @@
.app-name { .app-name {
font-size: 20px; font-size: 20px;
font-weight: 700; font-weight: 700;
color: #2f3640; color: var(--text-primary, #2f3640);
margin-bottom: 5px; margin-bottom: 5px;
} }
@@ -169,8 +169,8 @@
} }
.app-status.installed { .app-status.installed {
background: #d1fae5; background: var(--success-bg, #d1fae5);
color: #065f46; color: var(--success-text, #065f46);
} }
.app-status.installed i { .app-status.installed i {
@@ -178,8 +178,8 @@
} }
.app-status.not-installed { .app-status.not-installed {
background: #fee2e2; background: var(--danger-bg, #fee2e2);
color: #991b1b; color: var(--danger-text, #991b1b);
} }
.app-status.not-installed i { .app-status.not-installed i {
@@ -188,7 +188,7 @@
.app-description { .app-description {
font-size: 14px; font-size: 14px;
color: #64748b; color: var(--text-secondary, #64748b);
line-height: 1.6; line-height: 1.6;
margin-bottom: 20px; margin-bottom: 20px;
} }
@@ -243,8 +243,8 @@
} }
.modal-header { .modal-header {
background: #f8f9ff; background: var(--bg-secondary, #f8f9ff);
border-bottom: 1px solid #e8e9ff; border-bottom: 1px solid var(--border-color, #e8e9ff);
border-radius: 12px 12px 0 0; border-radius: 12px 12px 0 0;
padding: 20px; padding: 20px;
} }
@@ -252,7 +252,7 @@
.modal-title { .modal-title {
font-size: 20px; font-size: 20px;
font-weight: 700; font-weight: 700;
color: #2f3640; color: var(--text-primary, #2f3640);
display: flex; display: flex;
align-items: center; align-items: center;
gap: 10px; gap: 10px;
@@ -263,8 +263,8 @@
} }
.install-log { .install-log {
background: #f8f9ff; background: var(--bg-secondary, #f8f9ff);
border: 1px solid #e8e9ff; border: 1px solid var(--border-color, #e8e9ff);
border-radius: 8px; border-radius: 8px;
padding: 15px; padding: 15px;
} }
@@ -272,11 +272,11 @@
.log-textarea { .log-textarea {
width: 100%; width: 100%;
padding: 12px 15px; padding: 12px 15px;
border: 1px solid #e8e9ff; border: 1px solid var(--border-color, #e8e9ff);
border-radius: 8px; border-radius: 8px;
font-size: 13px; font-size: 13px;
color: #2f3640; color: var(--text-primary, #2f3640);
background: white; background: var(--bg-primary, white);
resize: vertical; resize: vertical;
font-family: 'Monaco', 'Consolas', monospace; font-family: 'Monaco', 'Consolas', monospace;
line-height: 1.5; line-height: 1.5;
@@ -286,7 +286,7 @@
.loading-spinner { .loading-spinner {
width: 24px; width: 24px;
height: 24px; height: 24px;
border: 3px solid #e8e9ff; border: 3px solid var(--border-color, #e8e9ff);
border-top-color: #5856d6; border-top-color: #5856d6;
border-radius: 50%; border-radius: 50%;
animation: spin 1s linear infinite; animation: spin 1s linear infinite;
@@ -307,26 +307,26 @@
.empty-icon { .empty-icon {
width: 80px; width: 80px;
height: 80px; height: 80px;
background: #f8f9ff; background: var(--bg-secondary, #f8f9ff);
border-radius: 50%; border-radius: 50%;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
margin: 0 auto 20px; margin: 0 auto 20px;
font-size: 36px; font-size: 36px;
color: #94a3b8; color: var(--text-muted, #94a3b8);
} }
.empty-title { .empty-title {
font-size: 20px; font-size: 20px;
font-weight: 700; font-weight: 700;
color: #2f3640; color: var(--text-primary, #2f3640);
margin-bottom: 10px; margin-bottom: 10px;
} }
.empty-description { .empty-description {
font-size: 15px; font-size: 15px;
color: #64748b; color: var(--text-secondary, #64748b);
} }
/* Responsive */ /* Responsive */

View File

@@ -105,7 +105,7 @@
.page-header p { .page-header p {
font-size: 15px; font-size: 15px;
color: #64748b; color: var(--text-secondary);
margin: 0; margin: 0;
} }
@@ -175,7 +175,7 @@
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
background: #f8f9ff; background: var(--bg-secondary);
border-radius: 16px; border-radius: 16px;
padding: 15px; padding: 15px;
} }
@@ -241,7 +241,7 @@
.service-stats p { .service-stats p {
font-size: 14px; font-size: 14px;
color: #64748b; color: var(--text-secondary);
margin: 0; margin: 0;
} }
@@ -366,7 +366,7 @@
/* System Overview */ /* System Overview */
.system-overview { .system-overview {
background: #f8f9ff; background: var(--bg-secondary);
border-radius: 12px; border-radius: 12px;
padding: 20px; padding: 20px;
margin-bottom: 20px; margin-bottom: 20px;
@@ -381,7 +381,7 @@
.overview-label { .overview-label {
font-size: 13px; font-size: 13px;
color: #64748b; color: var(--text-secondary);
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 0.5px; letter-spacing: 0.5px;
margin-bottom: 5px; margin-bottom: 5px;