- 删除演示账号快捷填入、账号/密码预填值与"记住密码"(不再明文存 localStorage) - 进入登录页自动清理旧版本遗留的 kefu_saved_* 本地数据 - 改用 antd Form.Item 标准 label + 直挂 Input,修复自动填充值不进表单状态 导致点登录无反应的问题;支持 ?expired=1 过期提示
178 lines
4.4 KiB
CSS
178 lines
4.4 KiB
CSS
@import 'tailwindcss';
|
|
|
|
:root {
|
|
--brand-primary: #2563eb;
|
|
--brand-primary-hover: #1d4ed8;
|
|
--brand-primary-active: #1e40af;
|
|
--brand-primary-light: #dbeafe;
|
|
--brand-primary-lighter: #eff6ff;
|
|
--neutral-0: #ffffff;
|
|
--neutral-50: #f8fafc;
|
|
--neutral-100: #f1f5f9;
|
|
--neutral-200: #e2e8f0;
|
|
--neutral-300: #cbd5e1;
|
|
--neutral-400: #94a3b8;
|
|
--neutral-500: #64748b;
|
|
--neutral-600: #475569;
|
|
--neutral-700: #334155;
|
|
--neutral-800: #1e293b;
|
|
--neutral-900: #0f172a;
|
|
--neutral-950: #020617;
|
|
--success: #16a34a;
|
|
--success-hover: #15803d;
|
|
--success-bg: #f0fdf4;
|
|
--warning: #d97706;
|
|
--warning-bg: #fffbeb;
|
|
--error: #dc2626;
|
|
--error-bg: #fef2f2;
|
|
--info: #0891b2;
|
|
--info-bg: #ecfeff;
|
|
--sidebar-width: 230px;
|
|
--panel-width: 320px;
|
|
--header-height: 56px;
|
|
--shadow-subtle: 0 1px 2px 0 rgba(0, 0, 0, 0.04);
|
|
--shadow-card: 0 1px 3px 0 rgba(0, 0, 0, 0.05), 0 1px 2px -1px rgba(0, 0, 0, 0.05);
|
|
--shadow-card-hover: 0 10px 25px -5px rgba(0, 0, 0, 0.08), 0 8px 10px -6px rgba(0, 0, 0, 0.04);
|
|
--shadow-floating: 0 12px 32px -4px rgba(15, 23, 42, 0.12), 0 4px 12px -2px rgba(15, 23, 42, 0.08);
|
|
}
|
|
|
|
/* 欢迎语富文本(SafeHtml)气泡内样式 */
|
|
.welcome-html p {
|
|
margin: 0 0 0.35em;
|
|
}
|
|
.welcome-html p:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
.welcome-html ul,
|
|
.welcome-html ol {
|
|
margin: 0.25em 0;
|
|
padding-left: 1.25em;
|
|
}
|
|
.welcome-html a {
|
|
color: #2563eb;
|
|
text-decoration: underline;
|
|
word-break: break-all;
|
|
}
|
|
.welcome-html strong {
|
|
font-weight: 600;
|
|
}
|
|
|
|
body {
|
|
margin: 0;
|
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
background: var(--neutral-50);
|
|
color: var(--neutral-900);
|
|
}
|
|
|
|
/* 现代精致细滚动条 */
|
|
::-webkit-scrollbar {
|
|
width: 6px;
|
|
height: 6px;
|
|
}
|
|
::-webkit-scrollbar-track {
|
|
background: transparent;
|
|
}
|
|
::-webkit-scrollbar-thumb {
|
|
background: rgba(148, 163, 184, 0.35);
|
|
border-radius: 9999px;
|
|
transition: background-color 0.2s ease;
|
|
}
|
|
::-webkit-scrollbar-thumb:hover {
|
|
background: rgba(100, 116, 139, 0.55);
|
|
}
|
|
|
|
@keyframes typingDot {
|
|
0%, 60%, 100% { opacity: 0.3; transform: translateY(0); }
|
|
30% { opacity: 1; transform: translateY(-3px); }
|
|
}
|
|
|
|
.typing-dot {
|
|
width: 6px;
|
|
height: 6px;
|
|
border-radius: 9999px;
|
|
background: var(--neutral-400);
|
|
animation: typingDot 1.4s infinite;
|
|
}
|
|
|
|
.no-scrollbar::-webkit-scrollbar { display: none; }
|
|
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
|
|
|
|
/* 玻璃拟态与交互效果 */
|
|
.glass-panel {
|
|
background: rgba(255, 255, 255, 0.85);
|
|
backdrop-filter: blur(12px);
|
|
-webkit-backdrop-filter: blur(12px);
|
|
}
|
|
|
|
.glass-dark {
|
|
background: rgba(15, 23, 42, 0.82);
|
|
backdrop-filter: blur(16px);
|
|
-webkit-backdrop-filter: blur(16px);
|
|
}
|
|
|
|
.subtle-border {
|
|
border-color: rgba(226, 232, 240, 0.8);
|
|
}
|
|
|
|
/* 浏览器自动填充 (Autofill) 样式重置与深色模式适配 */
|
|
input:-webkit-autofill,
|
|
input:-webkit-autofill:hover,
|
|
input:-webkit-autofill:focus,
|
|
input:-webkit-autofill:active {
|
|
transition: background-color 50000s ease-in-out 0s;
|
|
}
|
|
|
|
.login-dark-label {
|
|
display: block;
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
color: #cbd5e1;
|
|
}
|
|
|
|
.login-form .ant-form-item .ant-form-item-label > label {
|
|
color: #cbd5e1;
|
|
}
|
|
|
|
.login-dark-input,
|
|
.login-dark-input.ant-input-affix-wrapper,
|
|
.login-dark-input.ant-input {
|
|
background-color: rgba(30, 41, 59, 0.75) !important;
|
|
border-color: rgba(51, 65, 85, 0.8) !important;
|
|
color: #f8fafc !important;
|
|
}
|
|
|
|
.login-dark-input .ant-input {
|
|
background-color: transparent !important;
|
|
color: #f8fafc !important;
|
|
}
|
|
|
|
.login-dark-input input:-webkit-autofill,
|
|
.login-dark-input input:-webkit-autofill:hover,
|
|
.login-dark-input input:-webkit-autofill:focus,
|
|
.login-dark-input input:-webkit-autofill:active,
|
|
.login-dark-input .ant-input:-webkit-autofill {
|
|
-webkit-box-shadow: 0 0 0 1000px #1e293b inset !important;
|
|
-webkit-text-fill-color: #f8fafc !important;
|
|
caret-color: #f8fafc !important;
|
|
}
|
|
|
|
.login-dark-input .ant-input-password-icon,
|
|
.login-dark-input .anticon {
|
|
color: #94a3b8 !important;
|
|
}
|
|
|
|
.login-dark-input:hover,
|
|
.login-dark-input.ant-input-affix-wrapper:hover {
|
|
border-color: #3b82f6 !important;
|
|
}
|
|
|
|
.login-dark-input:focus,
|
|
.login-dark-input-focused,
|
|
.login-dark-input.ant-input-affix-wrapper-focused {
|
|
border-color: #3b82f6 !important;
|
|
box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.2) !important;
|
|
}
|
|
|