仰望星辰工作室

feat(user): 迁移为 StarIDC 新拟态 2.0 UI 主题

Z zfhsh 提交于 2026-10-03 18:22 · b9e5a12 ·父提交 51f91e5
feat(user): 迁移为 StarIDC 新拟态 2.0 UI 主题
4 个文件变更 +865 -205 3933415854@qq.com
•templates/default/user/assets/user-neomorphism.css +649 -0
•templates/default/user/head.php +14 -3
•templates/default/user/index.php +119 -113
•templates/default/user/login.php +83 -89
变更内容
diff --git a/templates/default/user/assets/user-neomorphism.css b/templates/default/user/assets/user-neomorphism.css
new file mode 100644
index 0000000..d31e0e6
--- /dev/null
+++ b/templates/default/user/assets/user-neomorphism.css
@@ -0,0 +1,649 @@
+/* ============================================================
+   MNBT 用户端 — StarIDC 新拟态 2.0 主题
+   基于 StarIDC theme/新拟态2.0/style.css 迁移
+   ============================================================ */
+
+/* ---------- 1. 设计变量(来自 StarIDC 新拟态2.0) ---------- */
+:root {
+    --n-bg: #e9eef2;
+    --n-bg-alt: #e3e8ec;
+    --n-fg: #2c3e50;
+    --n-muted: #607d8b;
+    --n-accent: #5c6bc0;
+    --n-accent-light: #7986cb;
+    --n-accent-dark: #3f51b5;
+    --n-shadow-light: #ffffff;
+    --n-shadow-dark: #cbd6e2;
+    --n-radius: 16px;
+    --n-radius-sm: 12px;
+    --n-radius-lg: 24px;
+    --n-radius-xl: 32px;
+    --n-transition: 0.25s cubic-bezier(0.4, 0, 0.2, 1);
+    --n-gradient-accent: linear-gradient(135deg, #5c6bc0 0%, #7e57c2 100%);
+
+    /* Bootstrap 兼容色映射 */
+    --primary: #5c6bc0;
+    --secondary: #607d8b;
+    --success: #2e7d32;
+    --info: #1565c0;
+    --warning: #e65100;
+    --danger: #c62828;
+}
+
+@media (prefers-color-scheme: dark) {
+    :root {
+        --n-bg: #2c303a;
+        --n-bg-alt: #262a33;
+        --n-fg: #eceff4;
+        --n-muted: #929bac;
+        --n-accent: #a78bfa;
+        --n-accent-light: #c4b5fd;
+        --n-accent-dark: #8b5cf6;
+        --n-shadow-light: #3d4353;
+        --n-shadow-dark: #1e2129;
+        --n-gradient-accent: linear-gradient(135deg, #a78bfa 0%, #c084fc 100%);
+    }
+}
+
+/* ---------- 2. 全局重置 ---------- */
+* { box-sizing: border-box; }
+html, body {
+    background: var(--n-bg) !important;
+    color: var(--n-fg) !important;
+    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif !important;
+    line-height: 1.6 !important;
+    -webkit-font-smoothing: antialiased;
+    scroll-behavior: smooth;
+}
+
+::-webkit-scrollbar { width: 8px; height: 8px; }
+::-webkit-scrollbar-track { background: var(--n-bg); }
+::-webkit-scrollbar-thumb { background: var(--n-shadow-dark); border-radius: 4px; }
+::-webkit-scrollbar-thumb:hover { background: var(--n-muted); }
+
+/* ---------- 3. Lyear 布局框架覆盖 ---------- */
+body.lyear-layout-body { background: var(--n-bg) !important; }
+.lyear-layout-web { background: var(--n-bg) !important; }
+.lyear-layout-container { background: var(--n-bg) !important; }
+
+/* --- 侧边栏(新拟态凹陷风格) --- */
+.lyear-layout-sidebar {
+    background: var(--n-bg) !important;
+    box-shadow: inset 4px 4px 10px var(--n-shadow-dark), inset -4px -4px 10px var(--n-shadow-light) !important;
+    border-right: none !important;
+}
+.sidebar-header {
+    background: var(--n-bg) !important;
+    border-bottom: none !important;
+    box-shadow: none !important;
+    padding: 20px 24px !important;
+}
+.sidebar-header a { display: flex; align-items: center; justify-content: center; }
+.sidebar-header img { max-height: 40px; filter: drop-shadow(2px 2px 4px var(--n-shadow-dark)); }
+
+.sidebar-main .nav-drawer { padding: 16px 12px !important; }
+.sidebar-main .nav-item { margin-bottom: 4px; }
+.sidebar-main .nav-item > a {
+    display: flex !important;
+    align-items: center !important;
+    padding: 12px 18px !important;
+    margin: 4px 0 !important;
+    border-radius: var(--n-radius-sm) !important;
+    background: var(--n-bg) !important;
+    color: var(--n-muted) !important;
+    font-weight: 600 !important;
+    font-size: 0.92rem !important;
+    box-shadow: 5px 5px 10px var(--n-shadow-dark), -5px -5px 10px var(--n-shadow-light) !important;
+    border: none !important;
+    transition: all var(--n-transition) !important;
+}
+.sidebar-main .nav-item > a:hover,
+.sidebar-main .nav-item.active > a {
+    color: var(--n-accent) !important;
+    box-shadow: inset 4px 4px 8px var(--n-shadow-dark), inset -4px -4px 8px var(--n-shadow-light) !important;
+    background: var(--n-bg) !important;
+}
+.sidebar-main .nav-item.nav-item-has-subnav > a {
+    box-shadow: 5px 5px 10px var(--n-shadow-dark), -5px -5px 10px var(--n-shadow-light) !important;
+}
+.sidebar-main .nav-subnav {
+    background: transparent !important;
+    box-shadow: none !important;
+    padding: 6px 0 6px 14px !important;
+    margin: 0 !important;
+    border-left: none !important;
+}
+.sidebar-main .nav-subnav li a {
+    padding: 8px 14px !important;
+    border-radius: var(--n-radius-sm) !important;
+    font-size: 0.88rem !important;
+    background: var(--n-bg) !important;
+    color: var(--n-muted) !important;
+    box-shadow: 3px 3px 6px var(--n-shadow-dark), -3px -3px 6px var(--n-shadow-light) !important;
+}
+.sidebar-main .nav-subnav li a:hover {
+    color: var(--n-accent) !important;
+}
+.sidebar-main .nav-item i { margin-right: 10px !important; }
+
+.sidebar-footer {
+    background: transparent !important;
+    border-top: none !important;
+    box-shadow: none !important;
+    padding: 16px !important;
+}
+.sidebar-footer .copyright {
+    color: var(--n-muted) !important;
+    font-size: 0.82rem !important;
+}
+
+/* --- 头部 --- */
+.lyear-layout-header {
+    background: var(--n-bg) !important;
+    box-shadow: 8px 8px 16px var(--n-shadow-dark), -8px -8px 16px var(--n-shadow-light) !important;
+    border-bottom: none !important;
+}
+.lyear-layout-header .navbar {
+    background: var(--n-bg) !important;
+    border-bottom: none !important;
+}
+.navbar-right .dropdown-profile > a {
+    border-radius: var(--n-radius-sm) !important;
+    padding: 6px 14px 6px 6px !important;
+    background: var(--n-bg) !important;
+    box-shadow: 4px 4px 8px var(--n-shadow-dark), -4px -4px 8px var(--n-shadow-light) !important;
+    color: var(--n-fg) !important;
+}
+.navbar-right .dropdown-profile > a:hover {
+    box-shadow: inset 2px 2px 4px var(--n-shadow-dark), inset -2px -2px 4px var(--n-shadow-light) !important;
+}
+.navbar-right .dropdown-profile img { border: none !important; box-shadow: 2px 2px 4px var(--n-shadow-dark), -2px -2px 4px var(--n-shadow-light); }
+
+/* 侧边栏折叠按钮 */
+.lyear-aside-toggler {
+    width: 36px; height: 36px;
+    border-radius: var(--n-radius-sm) !important;
+    background: var(--n-bg) !important;
+    box-shadow: 4px 4px 8px var(--n-shadow-dark), -4px -4px 8px var(--n-shadow-light) !important;
+    margin-right: 8px;
+}
+.lyear-aside-toggler .lyear-toggler-bar { background: var(--n-muted) !important; height: 2px !important; border-radius: 1px; }
+
+/* --- 主内容区 --- */
+.lyear-layout-content {
+    background: var(--n-bg) !important;
+    padding: 24px !important;
+}
+
+/* --- 多标签栏 --- */
+.mt-nav-bar {
+    background: var(--n-bg) !important;
+    box-shadow: inset 0 1px 3px var(--n-shadow-dark) !important;
+    border-top: none !important;
+    border-bottom: none !important;
+}
+.mt-nav-bar .nav-tabs { background: var(--n-bg) !important; border: none !important; }
+.mt-nav-bar .nav-tabs > li > a {
+    border: none !important;
+    background: var(--n-bg) !important;
+    color: var(--n-muted) !important;
+    border-radius: var(--n-radius-sm) !important;
+    margin: 6px 4px !important;
+    padding: 8px 16px !important;
+    box-shadow: 3px 3px 6px var(--n-shadow-dark), -3px -3px 6px var(--n-shadow-light) !important;
+}
+.mt-nav-bar .nav-tabs > li > a:hover { color: var(--n-accent); }
+.mt-nav-bar .nav-tabs > li.active > a {
+    box-shadow: inset 2px 2px 4px var(--n-shadow-dark), inset -2px -2px 4px var(--n-shadow-light) !important;
+    color: var(--n-accent) !important;
+    background: var(--n-bg) !important;
+}
+
+/* ---------- 4. Bootstrap 组件覆盖 ---------- */
+
+/* --- Card --- */
+.card {
+    background: var(--n-bg) !important;
+    border: none !important;
+    border-radius: var(--n-radius-lg) !important;
+    box-shadow: 8px 8px 16px var(--n-shadow-dark), -8px -8px 16px var(--n-shadow-light) !important;
+    margin-bottom: 24px !important;
+    transition: all var(--n-transition);
+}
+.card-header {
+    background: var(--n-bg) !important;
+    border-bottom: none !important;
+    border-radius: var(--n-radius-lg) var(--n-radius-lg) 0 0 !important;
+    padding: 20px 28px !important;
+    box-shadow: inset 0 -1px 0 var(--n-shadow-dark) !important;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+}
+.card-header h4, .card-header h3, .card-header .card-title {
+    color: var(--n-fg) !important;
+    font-weight: 700 !important;
+    font-size: 1.05rem !important;
+    margin: 0 !important;
+}
+.card-header ul.card-actions { display: flex; margin: 0; padding: 0; list-style: none; }
+.card-header ul.card-actions li { display: inline-flex; align-items: center; }
+.card-header ul.card-actions li span { cursor: pointer; padding: 4px; border-radius: 6px; box-shadow: 2px 2px 4px var(--n-shadow-dark), -2px -2px 4px var(--n-shadow-light); color: var(--n-muted); }
+.card-header ul.card-actions li span:hover { color: var(--n-accent); }
+
+.card-body { padding: 24px 28px !important; color: var(--n-fg); }
+
+.card.bg-primary, .card.bg-success, .card.bg-info, .card.bg-danger {
+    box-shadow: 8px 8px 16px var(--n-shadow-dark), -8px -8px 16px var(--n-shadow-light) !important;
+    border: none !important;
+}
+
+/* --- btn 按钮系列 --- */
+.btn {
+    border-radius: var(--n-radius-sm) !important;
+    font-weight: 600 !important;
+    padding: 10px 20px !important;
+    border: none !important;
+    transition: all var(--n-transition) !important;
+    font-size: 0.92rem !important;
+    letter-spacing: 0.3px;
+}
+.btn-primary {
+    background: var(--n-gradient-accent) !important;
+    color: #fff !important;
+    box-shadow: 0 4px 12px rgba(92, 107, 192, 0.35) !important;
+}
+.btn-primary:hover {
+    transform: translateY(-1px);
+    box-shadow: 0 6px 16px rgba(92, 107, 192, 0.45) !important;
+}
+.btn-primary:active {
+    box-shadow: inset 3px 3px 6px rgba(0,0,0,0.3) !important;
+    transform: none;
+}
+.btn-default {
+    background: var(--n-bg) !important;
+    color: var(--n-fg) !important;
+    box-shadow: 4px 4px 8px var(--n-shadow-dark), -4px -4px 8px var(--n-shadow-light) !important;
+}
+.btn-default:hover {
+    box-shadow: 2px 2px 4px var(--n-shadow-dark), -2px -2px 4px var(--n-shadow-light) !important;
+    color: var(--n-accent) !important;
+}
+.btn-default:active {
+    box-shadow: inset 3px 3px 6px var(--n-shadow-dark), inset -3px -3px 6px var(--n-shadow-light) !important;
+}
+.btn-success {
+    background: linear-gradient(135deg, #2e7d32, #388e3c) !important;
+    box-shadow: 0 4px 10px rgba(46, 125, 50, 0.3) !important;
+    color: #fff !important;
+}
+.btn-info {
+    background: linear-gradient(135deg, #1565c0, #1976d2) !important;
+    box-shadow: 0 4px 10px rgba(21, 101, 192, 0.3) !important;
+    color: #fff !important;
+}
+.btn-warning {
+    background: linear-gradient(135deg, #e65100, #f57c00) !important;
+    box-shadow: 0 4px 10px rgba(230, 81, 0, 0.3) !important;
+    color: #fff !important;
+}
+.btn-danger {
+    background: linear-gradient(135deg, #c62828, #d32f2f) !important;
+    box-shadow: 0 4px 10px rgba(198, 40, 40, 0.3) !important;
+    color: #fff !important;
+}
+.btn-cyan {
+    background: linear-gradient(135deg, #0097a7, #00acc1) !important;
+    color: #fff !important;
+    box-shadow: 0 4px 10px rgba(0, 151, 167, 0.3) !important;
+}
+.btn-purple {
+    background: linear-gradient(135deg, #7b1fa2, #8e24aa) !important;
+    color: #fff !important;
+    box-shadow: 0 4px 10px rgba(123, 31, 162, 0.3) !important;
+}
+.btn-xs { padding: 5px 12px !important; font-size: 0.78rem !important; border-radius: 8px !important; }
+.btn-sm { padding: 8px 16px !important; font-size: 0.85rem !important; }
+.btn-group .btn { box-shadow: none !important; }
+
+/* --- form-control 输入框 --- */
+.form-control {
+    border-radius: var(--n-radius-sm) !important;
+    background: var(--n-bg) !important;
+    border: none !important;
+    box-shadow: inset 4px 4px 8px var(--n-shadow-dark), inset -4px -4px 8px var(--n-shadow-light) !important;
+    color: var(--n-fg) !important;
+    padding: 12px 16px !important;
+    font-size: 0.95rem !important;
+    transition: box-shadow var(--n-transition) !important;
+    height: auto !important;
+}
+.form-control:focus {
+    box-shadow: inset 3px 3px 6px var(--n-shadow-dark), inset -3px -3px 6px var(--n-shadow-light) !important;
+    background: var(--n-bg) !important;
+    border: none !important;
+    color: var(--n-fg) !important;
+}
+.form-control::placeholder { color: var(--n-muted); }
+textarea.form-control { resize: vertical; min-height: 100px; }
+
+.form-group { margin-bottom: 18px !important; }
+.form-group label, .control-label {
+    font-weight: 600 !important;
+    color: var(--n-fg) !important;
+    font-size: 0.9rem !important;
+    margin-bottom: 8px !important;
+}
+
+/* --- table 表格 --- */
+.table {
+    color: var(--n-fg) !important;
+    background: transparent !important;
+    margin-bottom: 0 !important;
+}
+.table thead th {
+    background: var(--n-bg) !important;
+    color: var(--n-fg) !important;
+    font-weight: 700 !important;
+    border-bottom: 2px solid var(--n-shadow-dark) !important;
+    border-top: none !important;
+    padding: 14px 12px !important;
+    font-size: 0.88rem;
+}
+.table tbody td {
+    border-color: var(--n-shadow-dark) !important;
+    border-top: 1px solid var(--n-shadow-dark) !important;
+    padding: 12px !important;
+    background: transparent !important;
+    font-size: 0.9rem;
+}
+.table.table-bordered {
+    border: none !important;
+}
+.table.table-bordered > thead > tr > th,
+.table.table-bordered > tbody > tr > td {
+    border: 1px solid var(--n-shadow-dark) !important;
+    background: var(--n-bg) !important;
+}
+.table.table-striped > tbody > tr:nth-of-type(odd) {
+    background: rgba(0,0,0,0.015) !important;
+}
+.table.table-striped > tbody > tr:nth-of-type(odd) td {
+    background: rgba(0,0,0,0.02) !important;
+}
+
+/* --- nav-tabs --- */
+.nav-tabs {
+    background: var(--n-bg) !important;
+    border: none !important;
+    border-radius: var(--n-radius) !important;
+    padding: 6px !important;
+    box-shadow: inset 2px 2px 5px var(--n-shadow-dark), inset -2px -2px 5px var(--n-shadow-light) !important;
+    margin-bottom: 24px !important;
+}
+.nav-tabs > li > a {
+    border: none !important;
+    border-radius: var(--n-radius-sm) !important;
+    padding: 12px 20px !important;
+    margin: 2px !important;
+    color: var(--n-muted) !important;
+    font-weight: 600 !important;
+    font-size: 0.92rem !important;
+    background: transparent !important;
+    transition: all var(--n-transition);
+}
+.nav-tabs > li > a:hover { color: var(--n-accent) !important; }
+.nav-tabs > li.active > a {
+    background: var(--n-gradient-accent) !important;
+    color: #fff !important;
+    box-shadow: 0 3px 10px rgba(92, 107, 192, 0.4) !important;
+}
+
+/* --- progress 进度条 --- */
+.progress {
+    background: var(--n-bg) !important;
+    border-radius: 20px !important;
+    height: 20px !important;
+    box-shadow: inset 3px 3px 6px var(--n-shadow-dark), inset -3px -3px 6px var(--n-shadow-light) !important;
+    margin: 0 !important;
+}
+.progress-bar {
+    background: var(--n-gradient-accent) !important;
+    border-radius: 20px !important;
+    box-shadow: none !important;
+}
+.progress-bar-striped { background-image: none !important; }
+
+/* --- badge --- */
+.badge {
+    border-radius: 10px !important;
+    padding: 4px 12px !important;
+    font-weight: 700 !important;
+    font-size: 0.78rem !important;
+}
+.badge-primary-light { background: #c5cae9 !important; color: #3949ab !important; }
+.badge-success { background: #c8e6c9 !important; color: #2e7d32 !important; }
+.badge-danger { background: #ffcdd2 !important; color: #c62828 !important; }
+.badge-warning { background: #ffe0b2 !important; color: #e65100 !important; }
+.badge-info { background: #bbdefb !important; color: #1565c0 !important; }
+.badge-light { background: var(--n-shadow-dark) !important; color: var(--n-fg) !important; }
+
+/* --- modal --- */
+.modal-content {
+    background: var(--n-bg) !important;
+    border: none !important;
+    border-radius: var(--n-radius-lg) !important;
+    box-shadow: 16px 16px 32px var(--n-shadow-dark), -16px -16px 32px var(--n-shadow-light) !important;
+}
+.modal-header {
+    background: var(--n-bg) !important;
+    border-bottom: none !important;
+    box-shadow: inset 0 -1px 0 var(--n-shadow-dark) !important;
+    padding: 20px 28px !important;
+}
+.modal-header .modal-title { color: var(--n-fg) !important; font-weight: 700 !important; }
+.modal-header .close {
+    color: var(--n-muted) !important;
+    text-shadow: none !important;
+    opacity: 0.6;
+    width: 30px; height: 30px;
+    border-radius: 50%;
+    background: var(--n-bg);
+    box-shadow: 3px 3px 6px var(--n-shadow-dark), -3px -3px 6px var(--n-shadow-light);
+    display: inline-flex; align-items: center; justify-content: center;
+    font-size: 1.2rem;
+}
+.modal-header .close:hover { opacity: 1; color: #e53935; }
+
+.modal-body { padding: 24px 28px !important; color: var(--n-fg); }
+.modal-footer {
+    border-top: none !important;
+    box-shadow: inset 0 1px 0 var(--n-shadow-dark) !important;
+    padding: 16px 28px !important;
+    background: var(--n-bg) !important;
+}
+
+/* --- callout --- */
+.callout {
+    border-radius: var(--n-radius-sm) !important;
+    border: none !important;
+    padding: 16px 20px !important;
+    background: var(--n-bg) !important;
+    box-shadow: 4px 4px 8px var(--n-shadow-dark), -4px -4px 8px var(--n-shadow-light) !important;
+    color: var(--n-fg) !important;
+}
+.callout-info { border-left: 4px solid var(--n-info) !important; }
+.callout-primary { border-left: 4px solid var(--n-accent) !important; }
+.callout-success { border-left: 4px solid var(--n-success) !important; }
+.callout-danger { border-left: 4px solid var(--n-danger) !important; }
+
+/* --- text 颜色 --- */
+.text-primary { color: var(--n-accent) !important; }
+.text-success { color: var(--success) !important; }
+.text-info { color: var(--info) !important; }
+.text-warning { color: var(--warning) !important; }
+.text-danger { color: var(--danger) !important; }
+.text-muted { color: var(--n-muted) !important; }
+.text-white { color: #fff !important; }
+.text-purple { color: #7b1fa2 !important; }
+
+/* --- 空状态 --- */
+.text-center.text-muted { padding: 20px; color: var(--n-muted); }
+
+/* ---------- 5. 登录页新拟态 ---------- */
+body.login-page {
+    background: var(--n-bg) !important;
+    min-height: 100vh;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+}
+.login-card {
+    background: var(--n-bg) !important;
+    border: none !important;
+    border-radius: var(--n-radius-xl) !important;
+    box-shadow: 12px 12px 24px var(--n-shadow-dark), -12px -12px 24px var(--n-shadow-light) !important;
+}
+.login-brand .title { color: var(--n-fg) !important; font-weight: 800 !important; }
+.login-brand .sub { color: var(--n-muted) !important; }
+.login-form .form-control {
+    height: auto !important;
+    box-shadow: inset 6px 6px 12px var(--n-shadow-dark), inset -6px -6px 12px var(--n-shadow-light) !important;
+    padding: 14px 18px 14px 40px !important;
+    height: 50px !important;
+    border-radius: var(--n-radius-sm) !important;
+    border: none !important;
+    background: var(--n-bg) !important;
+    color: var(--n-fg) !important;
+}
+.login-form .form-control::placeholder { color: var(--n-muted); }
+.login-form .has-feedback .mdi { color: var(--n-muted) !important; }
+
+.login-form .btn-login {
+    background: var(--n-gradient-accent) !important;
+    height: 50px !important;
+    border-radius: var(--n-radius-sm) !important;
+    box-shadow: 0 6px 16px rgba(92, 107, 192, 0.4) !important;
+    color: #fff !important;
+    font-weight: 700 !important;
+}
+.login-form .btn-login:hover {
+    box-shadow: 0 8px 20px rgba(92, 107, 192, 0.5) !important;
+}
+.login-footer { color: var(--n-muted) !important; }
+
+.captcha-img {
+    height: 50px !important;
+    border-radius: var(--n-radius-sm) !important;
+    border: none !important;
+    box-shadow: 4px 4px 8px var(--n-shadow-dark), -4px -4px 8px var(--n-shadow-light) !important;
+}
+
+/* ---------- 6. iframe 内容通用 ---------- */
+.container-fluid, .container {
+    padding: 24px !important;
+    max-width: 100%;
+}
+
+/* 控制面板统计卡片 */
+.byys.card {
+    box-shadow: 6px 6px 12px var(--n-shadow-dark), -6px -6px 12px var(--n-shadow-light) !important;
+    border-radius: var(--n-radius) !important;
+}
+.byys .card-header.bg-info {
+    background: var(--n-bg) !important;
+    box-shadow: inset 0 -1px 0 var(--n-shadow-dark) !important;
+    color: var(--n-fg) !important;
+}
+.byys .card-header.bg-info h4 { color: var(--n-fg) !important; font-weight: 700 !important; }
+
+/* 功能菜单卡片 */
+.card.text-dark.border {
+    background: var(--n-bg) !important;
+    border: none !important;
+    box-shadow: 5px 5px 10px var(--n-shadow-dark), -5px -5px 10px var(--n-shadow-light) !important;
+    border-radius: var(--n-radius) !important;
+    padding: 16px 12px !important;
+    margin: 6px !important;
+    display: flex !important;
+    flex-direction: column !important;
+    align-items: center !important;
+    text-align: center !important;
+    color: var(--n-fg) !important;
+    font-weight: 600 !important;
+    text-decoration: none !important;
+    transition: all var(--n-transition);
+    min-height: 110px !important;
+}
+.card.text-dark.border:hover {
+    transform: translateY(-4px);
+    box-shadow: 8px 8px 16px var(--n-shadow-dark), -8px -8px 16px var(--n-shadow-light) !important;
+    color: var(--n-accent) !important;
+}
+.card.text-dark.border:active {
+    box-shadow: inset 3px 3px 6px var(--n-shadow-dark), inset -3px -3px 6px var(--n-shadow-light) !important;
+    transform: none;
+}
+.card.text-dark.border .mdi { color: var(--n-accent) !important; margin-bottom: 8px; }
+
+/* 面板内表格边框统一去除 */
+.table-bordered { border: none !important; }
+.table-bordered td, .table-bordered th { border-color: var(--n-shadow-dark) !important; }
+
+/* ---------- 7. dropdown 下拉菜单 ---------- */
+.dropdown-menu {
+    background: var(--n-bg) !important;
+    border: none !important;
+    border-radius: var(--n-radius-sm) !important;
+    box-shadow: 8px 8px 16px var(--n-shadow-dark), -8px -8px 16px var(--n-shadow-light) !important;
+    padding: 8px !important;
+}
+.dropdown-menu > li > a {
+    border-radius: 8px !important;
+    padding: 10px 18px !important;
+    color: var(--n-fg) !important;
+    font-weight: 500 !important;
+}
+.dropdown-menu > li > a:hover {
+    background: var(--n-bg-alt) !important;
+    color: var(--n-accent) !important;
+}
+
+/* ---------- 8. jQuery-confirm 对话框 ---------- */
+.jconfirm-box {
+    background: var(--n-bg) !important;
+    border-radius: var(--n-radius-lg) !important;
+    box-shadow: 16px 16px 32px var(--n-shadow-dark), -16px -16px 32px var(--n-shadow-light) !important;
+    border: none !important;
+}
+.jconfirm-content, .jconfirm-box .jconfirm-title-c {
+    color: var(--n-fg) !important;
+}
+.jconfirm-box .btn {
+    border-radius: var(--n-radius-sm) !important;
+    font-weight: 600 !important;
+}
+
+/* ---------- 9. jQuery-toast 消息 ---------- */
+.jconfirm-toast .jconfirm-content-pane {
+    border-radius: var(--n-radius) !important;
+    box-shadow: 8px 8px 16px var(--n-shadow-dark), -8px -8px 16px var(--n-shadow-light) !important;
+}
+
+/* ---------- 10. iframe loading 动画内边距修正 ---------- */
+.loading_upds { padding: 40px 20px; }
+
+/* ---------- 11. 响应式 ---------- */
+@media (max-width: 768px) {
+    .card-header { padding: 16px 20px !important; }
+    .card-body { padding: 20px !important; }
+    .container-fluid, .container { padding: 16px !important; }
+    .lyear-layout-content { padding: 16px !important; }
+    .card.text-dark.border { min-height: 90px !important; padding: 12px 8px !important; }
+    .byys .card-header h4, .byys .card-header .card-title { font-size: 0.95rem !important; }
+}
+@media (max-width: 480px) {
+    .btn { padding: 8px 14px !important; font-size: 0.85rem !important; }
+    .nav-tabs > li > a { padding: 10px 12px !important; font-size: 0.85rem !important; }
+}
diff --git a/templates/default/user/head.php b/templates/default/user/head.php
index 3adc98f..234d9cc 100644
--- a/templates/default/user/head.php
+++ b/templates/default/user/head.php
@@ -17,11 +17,25 @@ if (!empty($mn_conf['xf']['qk'])) {
 <title><?=$title ?? 'MNBT'?></title>
 <link rel="icon" href="<?=mnbt_asset_url('upload_logo/logo.head.png')?>?<?=$conf['auther'] ?? ''?>" type="image/ico">
 <meta name="author" content="yinqi">
+
+<!-- 基础依赖 -->
 <link href="<?=mnbt_asset_url('css/bootstrap.min.css')?>" rel="stylesheet">
 <link href="<?=mnbt_asset_url('css/materialdesignicons.min.css')?>" rel="stylesheet">
 <link rel="stylesheet" href="<?=mnbt_asset_url('js/bootstrap-multitabs/multitabs.min.css')?>">
 <link href="<?=mnbt_asset_url('css/animate.min.css')?>" rel="stylesheet">
 <link href="<?=mnbt_asset_url('css/style.min.css')?>" rel="stylesheet">
+
+<!-- 表格 & 弹窗 -->
+<link href="<?=mnbt_asset_url('js/bootstrap-table/bootstrap-table.min.css')?>" rel="stylesheet">
+<link href="<?=mnbt_asset_url('js/jquery-confirm/jquery-confirm.min.css')?>" rel="stylesheet">
+
+<!-- 原主题通用样式 -->
+<link href="<?=mnbt_theme_asset('user-common.css')?>" rel="stylesheet">
+
+<!-- ===== StarIDC 新拟态 2.0 主题(覆盖层,必须放在最末以确保优先级) ===== -->
+<link href="<?=mnbt_theme_asset('user-neomorphism.css')?>" rel="stylesheet">
+
+<!-- JS 依赖 -->
 <script type="text/javascript" src="<?=mnbt_asset_url('js/jquery.min.js')?>"></script>
 <script type="text/javascript" src="<?=mnbt_asset_url('js/popper.min.js')?>"></script>
 <script type="text/javascript" src="<?=mnbt_asset_url('js/bootstrap.min.js')?>"></script>
@@ -29,8 +43,5 @@ if (!empty($mn_conf['xf']['qk'])) {
 <script src="<?=mnbt_asset_url('js/bootstrap-notify.min.js')?>"></script>
 <script type="text/javascript" src="<?=mnbt_asset_url('js/main.min.js')?>"></script>
 <script type="text/javascript" src="<?=mnbt_asset_url('js/fn-hs.js')?>?1.74"></script>
-<link href="<?=mnbt_asset_url('js/bootstrap-table/bootstrap-table.min.css')?>" rel="stylesheet">
-<link href="<?=mnbt_asset_url('js/jquery-confirm/jquery-confirm.min.css')?>" rel="stylesheet">
-<link href="<?=mnbt_theme_asset('user-common.css')?>" rel="stylesheet">
 </head>
 <body>
diff --git a/templates/default/user/index.php b/templates/default/user/index.php
index b0ac84c..75b1bfa 100644
--- a/templates/default/user/index.php
+++ b/templates/default/user/index.php
@@ -11,20 +11,35 @@
 <meta name="apple-mobile-web-app-capable" content="yes">
 <meta name="apple-touch-fullscreen" content="yes">
 <meta name="apple-mobile-web-app-status-bar-style" content="default">
+
+<!-- 基础依赖 -->
 <link rel="stylesheet" type="text/css" href="<?=mnbt_asset_url('css/materialdesignicons.min.css')?>">
 <link rel="stylesheet" type="text/css" href="<?=mnbt_asset_url('css/bootstrap.min.css')?>">
 <link rel="stylesheet" type="text/css" href="<?=mnbt_asset_url('js/bootstrap-multitabs/multitabs.min.css')?>">
 <link rel="stylesheet" type="text/css" href="<?=mnbt_asset_url('css/animate.min.css')?>">
 <link rel="stylesheet" type="text/css" href="<?=mnbt_asset_url('css/style.min.css')?>">
 
+<!-- 弹窗 -->
 <link rel="stylesheet" type="text/css" href="<?=mnbt_asset_url('js/jquery-confirm/jquery-confirm.min.css')?>">
+
+<!-- ===== StarIDC 新拟态 2.0 主题(覆盖层,放在最末以确保优先级) ===== -->
+<link href="<?=mnbt_theme_asset('user-neomorphism.css')?>" rel="stylesheet">
+
 <script type="text/javascript" src="<?=mnbt_asset_url('js/fn-hs.js')?>"></script>
+
 <style>
-@keyframes rotate {
-    100%{-webkit-transform:rotate(360deg);}
-}
-#iframe_shuax{
-    cursor:pointer;
+@keyframes rotate { 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } }
+#iframe_shuax { cursor: pointer; }
+
+/* 侧边栏 logo 区域渐变标题(可选) */
+.sidebar-header .sidebar-brand-text {
+    font-size: 1.3rem;
+    font-weight: 800;
+    background: var(--n-gradient-accent);
+    -webkit-background-clip: text;
+    -webkit-text-fill-color: transparent;
+    background-clip: text;
+    letter-spacing: -0.5px;
 }
 </style>
 </head>
@@ -36,7 +51,11 @@
 <aside class="lyear-layout-sidebar">
 
 <!-- logo -->
-<div id="logo" class="sidebar-header"> <a href="index.php"> <img src="<?=mnbt_asset_url('upload_logo/logo.index.png')?>?<?=$conf['auther']?>" title="MN_logo" alt="MN_logo" /> </a> </div>
+<div id="logo" class="sidebar-header">
+  <a href="index.php">
+    <img src="<?=mnbt_asset_url('upload_logo/logo.index.png')?>?<?=$conf['auther']?>" title="MN_logo" alt="MN_logo" />
+  </a>
+</div>
 <div class="lyear-layout-sidebar-info lyear-scroll">
 <nav class="sidebar-main">
 <ul class="nav-drawer">
@@ -45,16 +64,13 @@
 <li class="nav-item nav-item-has-subnav"> <a href="javascript:void(0)"> <i class="mdi mdi-console"></i> <span>基本配置</span> </a>
   <ul class="nav nav-subnav">
       <li> <a class="multitabs" href="set.php?gn=php">PHP版本切换</a> </li>
-  <!--  <li> <a class="multitabs" href="set.php?gn=rzfx">日志分析</a> </li> -->
     <li> <a class="multitabs" href="set.php?gn=url">域名修改</a> </li>
     <li> <a class="multitabs" href="set.php?gn=pass">设置密码访问</a> </li>
     <li> <a class="multitabs" href="set.php?gn=mrwd">修改默认文档</a> </li>
-   <!-- <li> <a class="multitabs" href="set.php?gn=nginx">nginx配置文件</a> </li>-->
     <li> <a class="multitabs" href="set.php?gn=yxml">设置运行目录</a> </li>
     <li> <a class="multitabs" href="set.php?gn=wjt">设置伪静态</a> </li>
     <li> <a class="multitabs" href="set.php?gn=ssl">SSL配置</a> </li>
     <li> <a class="multitabs" href="set.php?gn=fdl">防盗链</a> </li>
-   <!-- <li> <a class="multitabs" href="set.php?gn=fzjh">负载均衡配置(开发中)</a> </li> -->
     <li> <a class="multitabs" href="set.php?gn=gzip">Gzip配置</a> </li>
     <li> <a class="multitabs" href="set.php?gn=cache">缓存配置</a> </li>
     <li> <a class="multitabs" href="set.php?gn=xgpass">修改密码</a> </li>
@@ -88,18 +104,22 @@ if (function_exists('mnbt_plugin_render_menu_user_html')) {
 </div>
 </div>
 </aside>
-<!--End 左侧导航--> 
+<!--End 左侧导航-->
 
 <!--头部信息-->
 <header class="lyear-layout-header">
   <nav class="navbar">
     <div class="navbar-left">
-      <div class="lyear-aside-toggler float-left"> <span class="lyear-toggler-bar"></span> <span class="lyear-toggler-bar"></span> <span class="lyear-toggler-bar"></span> </div>
-      <i class="ml-2 mdi mdi-refresh mdi-18px" id="iframe_shuax"></i>
+      <div class="lyear-aside-toggler float-left">
+        <span class="lyear-toggler-bar"></span>
+        <span class="lyear-toggler-bar"></span>
+        <span class="lyear-toggler-bar"></span>
+      </div>
+      <i class="ml-2 mdi mdi-refresh mdi-18px" id="iframe_shuax" style="color: var(--n-muted); cursor: pointer; padding: 6px; border-radius: 50%; box-shadow: 4px 4px 8px var(--n-shadow-dark), -4px -4px 8px var(--n-shadow-light);"></i>
     </div>
     <ul class="navbar-right d-flex align-items-center">
       <!--切换主题配色-->
-      <li class="dropdown dropdown-skin"> <span data-toggle="dropdown" class="icon-item"> <i class="mdi mdi-palette"></i> </span>
+      <li class="dropdown dropdown-skin"> <span data-toggle="dropdown" class="icon-item" style="cursor: pointer; padding: 6px; border-radius: 50%; box-shadow: 4px 4px 8px var(--n-shadow-dark), -4px -4px 8px var(--n-shadow-light); color: var(--n-muted); display: inline-flex;"> <i class="mdi mdi-palette"></i> </span>
         <ul class="dropdown-menu dropdown-menu-right" data-stopPropagation="true">
           <li class="drop-title">
             <p>LOGO</p>
@@ -192,15 +212,13 @@ if (function_exists('mnbt_plugin_render_menu_user_html')) {
         <?=$user?>
         </span> </a>
         <ul class="dropdown-menu dropdown-menu-right">
-          <li> <a class="dropdown-item"> <i class="mdi mdi-delete"> 清空缓存</i> </a> </li>
-          <li class="dropdown-divider"></li>
           <li> <a class="dropdown-item" onclick="chteci();"> <i class="mdi mdi-logout-variant"> 退出登录</i> </a> </li>
         </ul>
       </li>
     </ul>
   </nav>
 </header>
-<!--End 头部信息--> 
+<!--End 头部信息-->
 
 <!--页面主要内容-->
 <main class="lyear-layout-content">
@@ -209,136 +227,124 @@ if (function_exists('mnbt_plugin_render_menu_user_html')) {
 <!--End 页面主要内容-->
 </div>
 </div>
-<script type="text/javascript" src="<?=mnbt_asset_url('js/jquery.min.js')?>"></script> 
-<script type="text/javascript" src="<?=mnbt_asset_url('js/popper.min.js')?>"></script> 
-<script type="text/javascript" src="<?=mnbt_asset_url('js/bootstrap.min.js')?>"></script> 
-<script type="text/javascript" src="<?=mnbt_asset_url('js/perfect-scrollbar.min.js')?>"></script> 
-<script type="text/javascript" src="<?=mnbt_asset_url('js/bootstrap-multitabs/multitabs.min.js')?>"></script> 
-<script type="text/javascript" src="<?=mnbt_asset_url('js/jquery.cookie.min.js')?>"></script> 
-<script type="text/javascript" src="<?=mnbt_asset_url('js/index.min.js')?>"></script> 
 
-<!--消息提示--> 
+<!-- Scripts -->
+<script type="text/javascript" src="<?=mnbt_asset_url('js/jquery.min.js')?>"></script>
+<script type="text/javascript" src="<?=mnbt_asset_url('js/popper.min.js')?>"></script>
+<script type="text/javascript" src="<?=mnbt_asset_url('js/bootstrap.min.js')?>"></script>
+<script type="text/javascript" src="<?=mnbt_asset_url('js/perfect-scrollbar.min.js')?>"></script>
+<script type="text/javascript" src="<?=mnbt_asset_url('js/bootstrap-multitabs/multitabs.min.js')?>"></script>
+<script type="text/javascript" src="<?=mnbt_asset_url('js/jquery.cookie.min.js')?>"></script>
+<script type="text/javascript" src="<?=mnbt_asset_url('js/index.min.js')?>"></script>
+
+<!-- 消息提示 -->
 <script type="text/javascript" src="<?=mnbt_asset_url('js/jquery-confirm/jquery-confirm.min.js')?>"></script>
+<script type="text/javascript" src="<?=mnbt_asset_url('js/lyear-loading.js')?>"></script>
+<script type="text/javascript" src="<?=mnbt_asset_url('js/main.min.js')?>"></script>
+<script type="text/javascript" src="<?=mnbt_asset_url('js/fn-hs.js')?>"></script>
+<script type="text/javascript" src="<?=mnbt_asset_url('js/bootstrap-notify.min.js')?>"></script>
 
-<script type="text/javascript" src="<?=mnbt_asset_url('js/lyear-loading.js')?>"></script> 
-<script type="text/javascript" src="<?=mnbt_asset_url('js/main.min.js')?>"></script> 
-<script type="text/javascript" src="<?=mnbt_asset_url('js/fn-hs.js')?>"></script> 
-<script type="text/javascript" src="<?=mnbt_asset_url('js/bootstrap-notify.min.js')?>"></script> 
 <script type="text/javascript">
 function xiaole()
 {
     $.confirm({
         title: '邮箱绑定',
-        //content: 'url:form.html',  // 也可以采用url形式
-        content: '<div class="form-group p-1 mb-0">' + 
+        content: '<div class="form-group p-1 mb-0">' +
                  '  <label class="control-label">请输入你的邮箱,必须输入邮箱</label>' +
                  '  <input autofocus="" type="text" id="input-name" placeholder="请输入您的邮箱" class="form-control">' +
                  '</div>',
         buttons: {
             sayMyName: {
                 text: '提交',
-                btnClass: 'btn-orange',
+                btnClass: 'btn-primary',
                 action: function() {
                     var input = this.$content.find('input#input-name');
-                    var errorText = this.$content.find('.text-danger');
                     var emailRegex = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
-                    if (!emailRegex.test(input.val())||!$.trim(input.val())) 
-                    {
-                        $.alert({
-                            content: "邮箱错误",
-                            type: 'red'
-                        });
+                    if (!emailRegex.test(input.val()) || !$.trim(input.val())) {
+                        $.alert({ content: "邮箱错误", type: 'red' });
                         return false;
-                    } 
-                    msloading('正在处理中,请稍后...');  // 加载显示
+                    }
+                    msloading('正在处理中,请稍后...');
                     let data = {};
                     data["gn"] = "mailbd";
                     data['mail'] = input.val();
                     $.post('./ajax.php', data, function (date) {
-                    var jsoe= JSON.parse(date);    
-                    var qk= jsoe.code
-                    if(qk == "绑定成功")
-                    {
-                        msalert(1,'绑定成功!将在两秒后跳转登录!',2000);
-                        setTimeout(function()
-                    {
-                        window.location.href="./index.php";
-                        },2000);
-                    }
-                    else
-                    {
-                        msalert(4, qk,2000);
-                        setTimeout(function()
-                    {
-                        window.location.href="./index.php";
-                        },2000);
-    
-                    }
-        
-                })
-
+                        var jsoe = JSON.parse(date);
+                        var qk = jsoe.code;
+                        if (qk == "绑定成功") {
+                            msalert(1, '绑定成功!将在两秒后跳转登录!', 2000);
+                            setTimeout(function() { window.location.href = "./index.php"; }, 2000);
+                        } else {
+                            msalert(4, qk, 2000);
+                            setTimeout(function() { window.location.href = "./index.php"; }, 2000);
+                        }
+                    });
                 }
-            },
+            }
         }
     });
+}
 
+function chteci() {
+    msloading('正在退出登录中...', 'text-info', 'text-info');
+    let data = {};
+    data["gn"] = "login";
+    data["logout"] = "tclogin";
+    $.post('./ajax.php', data, function (date) {
+        var jsoe = JSON.parse(date);
+        var qk = jsoe.code;
+        msalert(1, qk, 2000);
+        window.location.href = "./login.php";
+        msloadingde();
+    });
 }
-			function chteci() {
-			msloading('正在退出登录中...','text-info','text-info');  // 加载显示
-			let data = {};
-			data["gn"]="login";
-			data["logout"]="tclogin";
-			$.post('./ajax.php', data, function (date) {    
-			var jsoe= JSON.parse(date);    
-			var qk= jsoe.code
-			msalert(1,qk,2000);
-			window.location.href="./login.php"
-			msloadingde();
-			})
-			}
-		
 
-			//页面加载动画
-			$thisTabs = $('#iframe-content')
-			var datasl=[];
-			$thisTabs.bind('DOMNodeInserted',function(){
-			var xzl=$(this)[0].innerText;
-			var dqs=xzl.split('\n');
-			if(datasl.indexOf(dqs[dqs.length-1])==-1){
-			//页面loading
-			setTimeout(function(){
-			var $thisTabs = parent.$('.mt-nav-bar .nav-tabs').find('a.active');
-			var ifarid=$thisTabs.attr('data-id');
-			$('#'+ifarid).contents().find('body').html('<link href="<?=mnbt_asset_url('css/style.min.css')?>" rel="stylesheet"><link href="<?=mnbt_asset_url('css/bootstrap.min.css')?>" rel="stylesheet"><link href="<?=mnbt_asset_url('css/index.loading.css')?>" rel="stylesheet"><div class="loading_upds"><div class="ctn-preloader"><div class="round_spinner"><div class="spinner"></div><img src="<?=mnbt_asset_url('upload_logo/logo.head.png')?>?<?=$conf['auther']?>" alt=""></div</div></div>');
-			},2)
-			}
-			datasl=dqs;
-			})
-			
-			//页面刷新
-			$("#iframe_shuax").on('click',function(){
-			var $thisTabs = parent.$('.mt-nav-bar .nav-tabs').find('a.active');
-			var ifarid=$thisTabs.attr('data-id');
-			//旋转动画
-			$(this).css({animation: "rotate 0.5s linear 1",display: "inline-block"});
-			setTimeout(function(){$("#iframe_shuax").removeAttr('style');},500);
-			
-			//页面loading
-			$('#'+ifarid).contents().find('body').html('<link href="<?=mnbt_asset_url('css/style.min.css')?>" rel="stylesheet"><link href="<?=mnbt_asset_url('css/bootstrap.min.css')?>" rel="stylesheet"><link href="<?=mnbt_asset_url('css/index.loading.css')?>" rel="stylesheet"><div class="loading_upds"><div class="ctn-preloader"><div class="round_spinner"><div class="spinner"></div><img src="<?=mnbt_asset_url('upload_logo/logo.head.png')?>?<?=$conf['auther']?>" alt=""></div</div></div>');
-			
-			$('#'+ifarid).attr('src', $('#'+ifarid).attr('src'));       //刷新子页面
-			})
-			
+//页面加载动画
+$thisTabs = $('#iframe-content');
+var datasl = [];
+$thisTabs.bind('DOMNodeInserted', function() {
+    var xzl = $(this)[0].innerText;
+    var dqs = xzl.split('\n');
+    if (datasl.indexOf(dqs[dqs.length-1]) == -1) {
+        setTimeout(function() {
+            var $thisTabs = parent.$('.mt-nav-bar .nav-tabs').find('a.active');
+            var ifarid = $thisTabs.attr('data-id');
+            $('#'+ifarid).contents().find('body').html(
+                '<link href="<?=mnbt_asset_url('css/style.min.css')?>" rel="stylesheet">'+
+                '<link href="<?=mnbt_asset_url('css/bootstrap.min.css')?>" rel="stylesheet">'+
+                '<link href="<?=mnbt_asset_url('css/index.loading.css')?>" rel="stylesheet">'+
+                '<div class="loading_upds"><div class="ctn-preloader"><div class="round_spinner"><div class="spinner"></div><img src="<?=mnbt_asset_url('upload_logo/logo.head.png')?>?<?=$conf['auther']?>" alt=""></div></div></div>'
+            );
+        }, 2);
+    }
+    datasl = dqs;
+});
 
-		</script>
+//页面刷新
+$("#iframe_shuax").on('click', function() {
+    var $thisTabs = parent.$('.mt-nav-bar .nav-tabs').find('a.active');
+    var ifarid = $thisTabs.attr('data-id');
+    $(this).css({ animation: "rotate 0.5s linear 1", display: "inline-block" });
+    setTimeout(function() { $("#iframe_shuax").removeAttr('style'); }, 500);
+
+    $('#'+ifarid).contents().find('body').html(
+        '<link href="<?=mnbt_asset_url('css/style.min.css')?>" rel="stylesheet">'+
+        '<link href="<?=mnbt_asset_url('css/bootstrap.min.css')?>" rel="stylesheet">'+
+        '<link href="<?=mnbt_asset_url('css/index.loading.css')?>" rel="stylesheet">'+
+        '<div class="loading_upds"><div class="ctn-preloader"><div class="round_spinner"><div class="spinner"></div><img src="<?=mnbt_asset_url('upload_logo/logo.head.png')?>?<?=$conf['auther']?>" alt=""></div></div></div>'
+    );
+
+    $('#'+ifarid).attr('src', $('#'+ifarid).attr('src'));
+});
+</script>
 </body>
 </html>
 <?php
 if($conf['zjyxbd'] == "true")
 {
-if($yhc['mailuser'] == "" || $yhc['mailuser'] == null)
-{
-    echo '<script>xiaole()</script>';
-}
+    if($yhc['mailuser'] == "" || $yhc['mailuser'] == null)
+    {
+        echo '<script>xiaole()</script>';
+    }
 }
 ?>
diff --git a/templates/default/user/login.php b/templates/default/user/login.php
index 5de5446..2ed47f5 100644
--- a/templates/default/user/login.php
+++ b/templates/default/user/login.php
@@ -1,8 +1,7 @@
 <?php mnbt_theme_include('head'); ?>
 <style>
-html, body {
-  height: 100%;
-}
+html, body { height: 100%; }
+
 body.login-page {
   margin: 0;
   min-height: 100vh;
@@ -10,129 +9,124 @@ body.login-page {
   align-items: center;
   justify-content: center;
   padding: 24px 16px;
-  background: #f4f6f8;
+  background: var(--n-bg) !important;
   font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
 }
-.login-wrap {
-  width: 100%;
-  max-width: 400px;
-}
+
+.login-wrap { width: 100%; max-width: 420px; }
+
 .login-card {
-  background: #fff;
-  border-radius: 16px;
-  padding: 40px 32px 28px;
-  box-shadow: 0 4px 24px rgba(15, 23, 42, 0.06);
-  border: 1px solid #eef1f4;
-}
-.login-brand {
-  text-align: center;
-  margin-bottom: 28px;
-}
+  background: var(--n-bg) !important;
+  border: none !important;
+  border-radius: var(--n-radius-xl) !important;
+  padding: 44px 40px 32px;
+  box-shadow: 12px 12px 24px var(--n-shadow-dark), -12px -12px 24px var(--n-shadow-light) !important;
+}
+
+.login-brand { text-align: center; margin-bottom: 32px; }
 .login-brand img {
-  max-height: 48px;
-  max-width: 200px;
+  max-height: 56px;
+  max-width: 220px;
   object-fit: contain;
+  filter: drop-shadow(2px 2px 4px var(--n-shadow-dark));
 }
 .login-brand .title {
-  margin: 14px 0 0;
-  font-size: 18px;
-  font-weight: 600;
-  color: #1e293b;
-  letter-spacing: -0.01em;
+  margin: 16px 0 0;
+  font-size: 1.3rem;
+  font-weight: 800;
+  background: var(--n-gradient-accent);
+  -webkit-background-clip: text;
+  -webkit-text-fill-color: transparent;
+  background-clip: text;
+  letter-spacing: -0.3px;
 }
 .login-brand .sub {
   margin: 6px 0 0;
-  font-size: 13px;
-  color: #94a3b8;
-}
-.login-form .form-group {
-  margin-bottom: 16px;
+  font-size: 0.9rem;
+  color: var(--n-muted);
 }
+
+.login-form .form-group { margin-bottom: 20px; }
 .login-form .form-control {
-  height: 44px;
-  border-radius: 10px;
-  border: 1px solid #e2e8f0;
-  background: #f8fafc;
-  color: #1e293b;
-  padding: 0 14px 0 40px;
-  font-size: 14px;
-  box-shadow: none;
-  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
+  height: 52px !important;
+  border-radius: var(--n-radius-sm) !important;
+  border: none !important;
+  background: var(--n-bg) !important;
+  color: var(--n-fg) !important;
+  padding: 14px 18px 14px 44px !important;
+  font-size: 0.95rem;
+  box-shadow: inset 6px 6px 12px var(--n-shadow-dark), inset -6px -6px 12px var(--n-shadow-light) !important;
+  transition: box-shadow var(--n-transition);
 }
 .login-form .form-control:focus {
-  background: #fff;
-  border-color: #33cabb;
-  box-shadow: 0 0 0 3px rgba(51, 202, 187, 0.15);
-  outline: none;
-}
-.login-form .form-control::placeholder {
-  color: #94a3b8;
-}
-.login-form .has-feedback {
-  position: relative;
+  box-shadow: inset 4px 4px 8px var(--n-shadow-dark), inset -4px -4px 8px var(--n-shadow-light) !important;
 }
+.login-form .form-control::placeholder { color: var(--n-muted); }
+.login-form .has-feedback { position: relative; }
 .login-form .has-feedback .mdi {
   position: absolute;
-  left: 0;
-  top: 0;
-  width: 40px;
-  height: 44px;
-  line-height: 44px;
+  left: 0; top: 0;
+  width: 44px; height: 52px;
+  line-height: 52px;
   text-align: center;
-  color: #94a3b8;
+  color: var(--n-muted);
   z-index: 2;
   pointer-events: none;
+  font-size: 1.1rem;
 }
-.login-form .has-feedback.row .mdi {
-  left: 15px;
-}
+
 .login-form .captcha-row {
   display: flex;
-  gap: 10px;
+  gap: 12px;
   align-items: stretch;
 }
-.login-form .captcha-row .captcha-input {
-  flex: 1;
-  min-width: 0;
-}
+.login-form .captcha-row .captcha-input { flex: 1; min-width: 0; }
 .login-form .captcha-img {
-  height: 44px;
-  border-radius: 10px;
-  border: 1px solid #e2e8f0;
+  height: 52px;
+  border-radius: var(--n-radius-sm);
+  border: none !important;
+  box-shadow: 4px 4px 8px var(--n-shadow-dark), -4px -4px 8px var(--n-shadow-light);
   cursor: pointer;
   flex-shrink: 0;
 }
+
 .login-form .btn-login {
-  height: 44px;
-  border-radius: 10px;
-  border: none;
-  background: #33cabb;
-  color: #fff;
-  font-size: 15px;
-  font-weight: 600;
+  height: 52px !important;
+  border-radius: var(--n-radius-sm) !important;
+  border: none !important;
+  background: var(--n-gradient-accent) !important;
+  color: #fff !important;
+  font-size: 1rem !important;
+  font-weight: 700 !important;
   width: 100%;
-  margin-top: 4px;
-  transition: background .15s ease, transform .1s ease;
+  margin-top: 8px;
+  box-shadow: 0 6px 18px rgba(92, 107, 192, 0.4) !important;
+  transition: all var(--n-transition);
+  letter-spacing: 2px;
 }
-.login-form .btn-login:hover,
-.login-form .btn-login:focus {
-  background: #2bb3a5;
-  color: #fff;
+.login-form .btn-login:hover {
+  transform: translateY(-1px);
+  box-shadow: 0 8px 22px rgba(92, 107, 192, 0.55) !important;
 }
 .login-form .btn-login:active {
-  transform: scale(0.99);
+  transform: none;
+  box-shadow: inset 3px 3px 8px rgba(0,0,0,0.3), 0 4px 12px rgba(92, 107, 192, 0.4) !important;
 }
+
 .login-footer {
-  margin: 20px 0 0;
+  margin: 24px 0 0;
   text-align: center;
-  font-size: 12px;
-  color: #94a3b8;
-  line-height: 1.5;
-}
-@media (max-width: 420px) {
-  .login-card {
-    padding: 32px 20px 24px;
-  }
+  font-size: 0.82rem;
+  color: var(--n-muted);
+  line-height: 1.6;
+}
+
+@media (max-width: 480px) {
+  .login-card { padding: 36px 24px 28px; border-radius: var(--n-radius-lg) !important; }
+  .login-brand img { max-height: 44px; max-width: 180px; }
+  .login-brand .title { font-size: 1.15rem; }
+  .captcha-row { flex-direction: column; gap: 10px; }
+  .captcha-img { width: 100%; height: 52px; }
 }
 </style>
 </head>