/*
 * DigiDoc 主题主样式 v2.0
 * 设计参考：子比 Zibll — 毛玻璃、极淡阴影、8px圆角、hover微动效
 * 主题色：科技蓝 #2D7FF9
 */

/* ────── 1. CSS 变量 ────── */
:root {
    --dd-primary:       #2D7FF9;
    --dd-primary-hover: #1A6FE0;
    --dd-primary-light: #E8F0FE;
    --dd-primary-shadow: rgba(45, 127, 249, 0.35);
    --dd-success:       #22C55E;
    --dd-warning:       #F59E0B;
    --dd-danger:        #EF4444;

    --dd-bg:            #F5F6F7;
    --dd-bg-white:      #FFFFFF;
    --dd-bg-muted:      #F0F2F5;
    --dd-text:          #1F2937;
    --dd-text-muted:    #6B7280;
    --dd-text-muted2:   #9CA3AF;
    --dd-border:        #E5E7EB;
    --dd-border-light:  rgba(0,0,0,0.03);

    --dd-radius:        8px;
    --dd-radius-sm:     4px;
    --dd-radius-lg:     12px;

    --dd-shadow:        0 1px 4px rgba(0,0,0,0.06);
    --dd-shadow-hover:  0 6px 20px rgba(0,0,0,0.08);
    --dd-shadow-lg:     0 10px 40px rgba(0,0,0,0.1);

    --dd-blur-bg:       rgba(255,255,255,0.85);
    --dd-font:          -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
    --dd-transition:    0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ────── 2. Reset & Base ────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
    font-family: var(--dd-font);
    color: var(--dd-text);
    background: var(--dd-bg);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}
a { color: var(--dd-primary); text-decoration: none; transition: color var(--dd-transition); }
a:hover { color: var(--dd-primary-hover); }
img { max-width: 100%; height: auto; vertical-align: middle; }
svg { vertical-align: middle; }
ul, ol { list-style: none; }
p { margin-bottom: 12px; }

::selection { background: var(--dd-primary); color: #fff; }

/* ────── 3. 容器 & 布局 ────── */
.dd-container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }

.dd-layout {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 24px;
    padding-top: 24px;
    padding-bottom: 60px;
}

.dd-content { min-width: 0; }

/* ────── 4. Flex 工具 ────── */
.dd-flex { display: flex; }
.dd-flex-center { display: flex; align-items: center; justify-content: center; }
.dd-flex-between { display: flex; align-items: center; justify-content: space-between; }
.dd-gap-sm { gap: 8px; }
.dd-gap-md { gap: 16px; }
.dd-gap-lg { gap: 24px; }

/* ────── 5. 头部 Header（毛玻璃效果） ────── */
.dd-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: var(--dd-blur-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid transparent;
    transition: box-shadow var(--dd-transition), border-color var(--dd-transition);
}
.body-scroll .dd-header {
    border-bottom-color: var(--dd-border);
    box-shadow: 0 1px 8px rgba(0,0,0,0.06);
}

.dd-header-inner {
    display: flex;
    align-items: center;
    height: 60px;
    gap: 16px;
}

/* Logo */
.dd-logo { flex-shrink: 0; }
.dd-logo-text {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--dd-text);
}
.dd-logo-text:hover { color: var(--dd-primary); }
.dd-logo-icon { color: var(--dd-primary); }

/* 导航 */
.dd-nav { flex: 1; display: flex; }
.dd-nav-list {
    display: flex;
    align-items: center;
    gap: 2px;
}
.dd-nav-list > li { position: relative; }
.dd-nav-list > li > a {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 8px 14px;
    color: var(--dd-text);
    border-radius: var(--dd-radius);
    font-size: 0.9rem;
    font-weight: 500;
    transition: all var(--dd-transition);
    white-space: nowrap;
}
.dd-nav-list > li > a:hover,
.dd-nav-list > .current-menu-item > a,
.dd-nav-list > .current-menu-parent > a {
    background: var(--dd-primary-light);
    color: var(--dd-primary);
}
.dd-nav-list > li > a:active { transform: scale(0.96); }

/* 子菜单 */
.dd-nav-list .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 160px;
    background: var(--dd-bg-white);
    border: 1px solid var(--dd-border);
    border-radius: var(--dd-radius);
    box-shadow: var(--dd-shadow-hover);
    padding: 6px 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: all var(--dd-transition);
    z-index: 50;
}
.dd-nav-list > li:hover > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(4px);
}
.dd-nav-list .sub-menu a {
    display: block;
    padding: 8px 16px;
    font-size: 0.85rem;
    color: var(--dd-text);
    transition: background 0.15s;
}
.dd-nav-list .sub-menu a:hover {
    background: var(--dd-primary-light);
    color: var(--dd-primary);
}

/* 头部操作按钮 */
.dd-header-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    color: var(--dd-text-muted);
    border-radius: 50%;
    transition: all var(--dd-transition);
    cursor: pointer;
}
.dd-header-action:hover {
    background: var(--dd-bg-muted);
    color: var(--dd-primary);
}

/* 用户下拉菜单 */
.dd-user-dropdown { position: relative; }
.dd-user-dropdown .dd-avatar { border-radius: 50%; width: 28px; height: 28px; }

.dd-dropdown-menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    min-width: 180px;
    background: var(--dd-bg-white);
    border: 1px solid var(--dd-border);
    border-radius: var(--dd-radius);
    box-shadow: var(--dd-shadow-hover);
    padding: 8px 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: all var(--dd-transition);
    z-index: 100;
}
.dd-user-dropdown:hover .dd-dropdown-menu,
.dd-dropdown-menu:hover {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.dd-dropdown-user {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    margin-bottom: 4px;
}
.dd-dropdown-user img { border-radius: 50%; }
.dd-dropdown-user strong { display: block; font-size: 0.9rem; line-height: 1.3; }
.dd-dropdown-user span { display: block; font-size: 0.75rem; color: var(--dd-text-muted2); }
.dd-dropdown-divider {
    height: 1px;
    background: var(--dd-border);
    margin: 4px 12px;
}
.dd-dropdown-menu a {
    display: block;
    padding: 8px 16px;
    font-size: 0.85rem;
    color: var(--dd-text);
    transition: background 0.15s;
}
.dd-dropdown-menu a:hover {
    background: var(--dd-primary-light);
    color: var(--dd-primary);
}

/* 移动端菜单按钮 */
.dd-mobile-toggle { display: none; flex-direction: column; gap: 4px; padding: 6px; cursor: pointer; }
.dd-mobile-toggle span {
    display: block;
    width: 22px; height: 2px;
    background: var(--dd-text);
    border-radius: 2px;
    transition: all var(--dd-transition);
}
.dd-mobile-toggle.active span:nth-child(1) { transform: rotate(45deg) translate(4px, 4px); }
.dd-mobile-toggle.active span:nth-child(2) { opacity: 0; }
.dd-mobile-toggle.active span:nth-child(3) { transform: rotate(-45deg) translate(4px, -4px); }

/* 搜索栏 */
.dd-search-bar {
    display: none;
    padding: 16px 0;
    background: var(--dd-bg-white);
    border-bottom: 1px solid var(--dd-border);
}
.dd-search-form {
    display: flex;
    align-items: center;
    gap: 10px;
}
.dd-search-icon { flex-shrink: 0; color: var(--dd-text-muted2); }
.dd-search-form input[type="search"] {
    flex: 1;
    border: none;
    background: var(--dd-bg);
    padding: 10px 16px;
    border-radius: 50px;
    font-size: 0.9rem;
    font-family: inherit;
    outline: none;
    transition: background var(--dd-transition);
}
.dd-search-form input[type="search"]:focus { background: var(--dd-primary-light); }
.dd-search-close {
    font-size: 1.4rem;
    color: var(--dd-text-muted2);
    line-height: 1;
}
.dd-search-close:hover { color: var(--dd-text); }
.dd-search-mask {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.3);
    z-index: 999;
}

/* ────── 6. 按钮系统 ────── */
.dd-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 20px;
    border: 1px solid transparent;
    border-radius: var(--dd-radius);
    font-size: 0.9rem;
    font-weight: 500;
    font-family: inherit;
    cursor: pointer;
    transition: all var(--dd-transition);
    white-space: nowrap;
    user-select: none;
    line-height: 1.4;
}
.dd-btn:active { transform: scale(0.97); }
.dd-btn[disabled] { opacity: 0.5; cursor: not-allowed; transform: none; }
.dd-btn:focus-visible { outline: 2px solid var(--dd-primary); outline-offset: 2px; }

.dd-btn-primary {
    background: var(--dd-primary);
    color: #fff;
}
.dd-btn-primary:hover { background: var(--dd-primary-hover); color: #fff; box-shadow: 0 4px 12px var(--dd-primary-shadow); }

.dd-btn-success {
    background: var(--dd-success);
    color: #fff;
}
.dd-btn-success:hover { background: #16A34A; color: #fff; box-shadow: 0 4px 12px rgba(34,197,94,0.35); }

.dd-btn-wechat { background: #07C160; color: #fff; }
.dd-btn-wechat:hover { background: #06AD56; color: #fff; box-shadow: 0 4px 12px rgba(7,193,96,0.35); }

.dd-btn-outline {
    background: transparent;
    border-color: var(--dd-border);
    color: var(--dd-text);
}
.dd-btn-outline:hover { border-color: var(--dd-primary); color: var(--dd-primary); background: var(--dd-primary-light); }

.dd-btn-ghost {
    background: transparent;
    color: var(--dd-text-muted);
}
.dd-btn-ghost:hover { background: var(--dd-bg-muted); color: var(--dd-text); }

/* 按钮尺寸 */
.dd-btn-xs  { padding: 3px 10px; font-size: 0.75rem; border-radius: var(--dd-radius-sm); }
.dd-btn-sm  { padding: 5px 14px; font-size: 0.8rem; }
.dd-btn-lg  { padding: 12px 28px; font-size: 1rem; }
.dd-btn-xl  { padding: 16px 36px; font-size: 1.05rem; border-radius: var(--dd-radius-lg); }
.dd-btn-block { width: 100%; }

/* 胶囊按钮 */
.dd-btn-pill { border-radius: 50px; }

/* 按钮组 */
.dd-btn-group { display: inline-flex; }
.dd-btn-group > .dd-btn { border-radius: 0; }
.dd-btn-group > .dd-btn:first-child { border-radius: var(--dd-radius) 0 0 var(--dd-radius); }
.dd-btn-group > .dd-btn:last-child { border-radius: 0 var(--dd-radius) var(--dd-radius) 0; }
.dd-btn-group > .dd-btn + .dd-btn { margin-left: -1px; }

/* ────── 7. 徽章/标签 ────── */
.dd-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.2em 0.6em;
    border-radius: var(--dd-radius-sm);
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1.4;
    border: 1px solid transparent;
    transition: all var(--dd-transition);
}
.dd-badge-primary { background: var(--dd-primary-light); color: var(--dd-primary); }
.dd-badge-success { background: #E8F5E9; color: #2E7D32; }
.dd-badge-warning { background: #FFF8E1; color: #F57F17; }
.dd-badge-danger  { background: #FFEBEE; color: #C62828; }
.dd-badge-free    { background: var(--dd-success); color: #fff; }
.dd-badge-vip     { background: linear-gradient(135deg, #F59E0B, #D97706); color: #fff; }

.dd-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 12px;
    background: var(--dd-bg-muted);
    color: var(--dd-text-muted);
    border-radius: 50px;
    font-size: 0.8rem;
    transition: all var(--dd-transition);
}
.dd-tag:hover { background: var(--dd-primary-light); color: var(--dd-primary); }

/* ────── 8. 资料卡片 ────── */
.dd-doc-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.dd-doc-card {
    background: var(--dd-bg-white);
    border-radius: var(--dd-radius);
    overflow: hidden;
    transition: transform var(--dd-transition), box-shadow var(--dd-transition);
    box-shadow: var(--dd-shadow);
}
.dd-doc-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--dd-shadow-hover);
}

.dd-card-thumb {
    display: block;
    position: relative;
    aspect-ratio: 16/10;
    overflow: hidden;
    background: var(--dd-bg-muted);
}
.dd-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}
.dd-doc-card:hover .dd-card-thumb img { transform: scale(1.05); }

.dd-card-thumb-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: var(--dd-text-muted2);
}

/* 卡片徽章（覆盖在缩略图上） */
.dd-card-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    padding: 2px 10px;
    border-radius: var(--dd-radius-sm);
    font-size: 0.75rem;
    font-weight: 600;
    z-index: 2;
}

/* 卡片正文 */
.dd-card-body { padding: 16px; }
.dd-card-title {
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.45;
    margin-bottom: 8px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.dd-card-title a { color: var(--dd-text); }
.dd-card-title a:hover { color: var(--dd-primary); }

.dd-card-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 0.78rem;
    color: var(--dd-text-muted2);
    margin-bottom: 10px;
}
.dd-card-cat {
    background: var(--dd-primary-light);
    color: var(--dd-primary);
    padding: 1px 8px;
    border-radius: 50px;
    font-size: 0.72rem;
    font-weight: 500;
}

.dd-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 10px;
    border-top: 1px solid var(--dd-border-light);
}
.dd-card-price {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--dd-danger);
}
.dd-price-free { color: var(--dd-success); }
.dd-card-link {
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--dd-primary);
}

/* ────── 9. 详情页 ────── */

/* 面包屑 */
.dd-breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    font-size: 0.82rem;
    color: var(--dd-text-muted2);
    margin-bottom: 16px;
    padding: 10px 0;
}
.dd-breadcrumb a { color: var(--dd-text-muted2); }
.dd-breadcrumb a:hover { color: var(--dd-primary); }
.dd-breadcrumb .sep { margin: 0 6px; color: var(--dd-text-muted2); }
.dd-breadcrumb .current { color: var(--dd-text-muted); }

/* 资料头部 */
.dd-doc-header {
    background: var(--dd-bg-white);
    border-radius: var(--dd-radius);
    padding: 24px;
    margin-bottom: 20px;
    box-shadow: var(--dd-shadow);
}
.dd-doc-title {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.35;
    margin-bottom: 12px;
}

.dd-doc-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    color: var(--dd-text-muted);
    font-size: 0.82rem;
}
.dd-meta-item { display: inline-flex; align-items: center; gap: 4px; }

/* 购买框 */
.dd-doc-buy-box {
    background: var(--dd-bg-white);
    border: 1px solid var(--dd-border);
    border-radius: var(--dd-radius-lg);
    padding: 28px;
    margin-bottom: 24px;
    box-shadow: var(--dd-shadow);
}
.dd-price-area {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
}
.dd-price-label { font-size: 1.15rem; font-weight: 600; }
.dd-label-success { color: var(--dd-success); }
.dd-price-display { display: flex; align-items: baseline; gap: 12px; }
.dd-price-amount {
    font-size: 1.8rem;
    font-weight: 800;
    color: var(--dd-danger);
    letter-spacing: -0.02em;
}
.dd-price-vip {
    font-size: 0.9rem;
    color: #D97706;
    background: #FFF8E1;
    padding: 2px 12px;
    border-radius: 50px;
    font-weight: 500;
}
.dd-buy-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.dd-price-notice {
    width: 100%;
    margin-top: 12px;
    font-size: 0.8rem;
    color: var(--dd-text-muted2);
}

/* 内容区 */
.dd-entry {
    background: var(--dd-bg-white);
    border-radius: var(--dd-radius);
    padding: 28px;
    margin-bottom: 20px;
    line-height: 1.85;
    box-shadow: var(--dd-shadow);
}
.dd-entry p { margin-bottom: 16px; }
.dd-entry h2 { font-size: 1.25rem; margin: 28px 0 12px; border-left: 4px solid var(--dd-primary); padding-left: 12px; }
.dd-entry h3 { font-size: 1.1rem; margin: 24px 0 10px; }
.dd-entry img { border-radius: var(--dd-radius); margin: 16px 0; max-width: 100%; height: auto; }
.dd-entry blockquote {
    border-left: 4px solid var(--dd-primary);
    padding: 12px 20px;
    margin: 16px 0;
    background: var(--dd-bg);
    color: var(--dd-text-muted);
    border-radius: 0 var(--dd-radius) var(--dd-radius) 0;
}
.dd-entry code {
    background: var(--dd-bg-muted);
    padding: 2px 6px;
    border-radius: var(--dd-radius-sm);
    font-size: 0.85em;
}
.dd-entry ul, .dd-entry ol { padding-left: 20px; margin-bottom: 16px; }
.dd-entry ul { list-style: disc; }
.dd-entry ol { list-style: decimal; }
.dd-entry li { margin-bottom: 6px; }

/* 标签区域 */
.dd-doc-tags {
    margin-top: 20px;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

/* ────── 10. 列表页 ────── */
.dd-archive-header {
    margin-bottom: 24px;
}
.dd-archive-title {
    font-size: 1.3rem;
    font-weight: 700;
}
.dd-archive-desc {
    margin-top: 8px;
    font-size: 0.85rem;
    color: var(--dd-text-muted);
}

/* ────── 11. 侧边栏 ────── */
.dd-widget {
    background: var(--dd-bg-white);
    border-radius: var(--dd-radius);
    padding: 20px;
    margin-bottom: 20px;
    box-shadow: var(--dd-shadow);
}
.dd-widget-title {
    font-size: 0.95rem;
    font-weight: 600;
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--dd-primary);
    display: flex;
    align-items: center;
    gap: 8px;
}
.dd-widget ul li {
    padding: 8px 0;
    border-bottom: 1px solid var(--dd-border-light);
    font-size: 0.88rem;
}
.dd-widget ul li:last-child { border-bottom: none; }
.dd-widget ul li a { color: var(--dd-text); display: block; }
.dd-widget ul li a:hover { color: var(--dd-primary); }

.dd-widget-search form {
    display: flex;
    gap: 8px;
}
.dd-widget-search input[type="search"] {
    flex: 1;
    padding: 8px 12px;
    border: 1px solid var(--dd-border);
    border-radius: 50px;
    font-size: 0.85rem;
    font-family: inherit;
    outline: none;
    background: var(--dd-bg);
}
.dd-widget-search input[type="search"]:focus { border-color: var(--dd-primary); }

/* ────── 12. 分页 ────── */
.dd-pagination {
    margin-top: 32px;
    text-align: center;
    display: flex;
    justify-content: center;
    gap: 4px;
}
.dd-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 38px;
    padding: 0 12px;
    background: var(--dd-bg-white);
    border: 1px solid var(--dd-border);
    border-radius: var(--dd-radius);
    font-size: 0.85rem;
    color: var(--dd-text);
    transition: all var(--dd-transition);
}
.dd-pagination .page-numbers.current {
    background: var(--dd-primary);
    color: #fff;
    border-color: var(--dd-primary);
}
.dd-pagination .page-numbers:hover:not(.current) {
    background: var(--dd-primary-light);
    border-color: var(--dd-primary);
    color: var(--dd-primary);
}

/* ────── 13. Footer ────── */
.dd-footer {
    background: #1F2937;
    color: var(--dd-text-muted2);
    padding: 48px 0 24px;
    margin-top: 60px;
}
.dd-footer-widgets { margin-bottom: 24px; }
.dd-footer-widget-title { color: #E5E7EB; font-size: 0.9rem; margin-bottom: 12px; }
.dd-footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    padding-top: 20px;
    border-top: 1px solid #374151;
    font-size: 0.82rem;
}
.dd-footer-links {
    display: flex;
    gap: 16px;
}
.dd-footer-links a { color: var(--dd-text-muted2); }
.dd-footer-links a:hover { color: #fff; }
.dd-copyright { color: #6B7280; }

/* ────── 14. 登录/注册页 ────── */
.dd-auth-page {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 80vh;
    padding: 40px 20px;
}
.dd-auth-box {
    width: 100%;
    max-width: 400px;
    background: var(--dd-bg-white);
    border-radius: var(--dd-radius-lg);
    padding: 40px 36px;
    box-shadow: var(--dd-shadow-hover);
}
.dd-auth-box h1 {
    text-align: center;
    margin-bottom: 28px;
    font-size: 1.3rem;
    font-weight: 700;
}
.dd-auth-error {
    background: #FFEBEE;
    color: #C62828;
    padding: 10px 14px;
    border-radius: var(--dd-radius);
    margin-bottom: 16px;
    font-size: 0.85rem;
}
.dd-auth-divider {
    text-align: center;
    margin: 20px 0;
    position: relative;
}
.dd-auth-divider::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 1px;
    background: var(--dd-border);
}
.dd-auth-divider span {
    background: var(--dd-bg-white);
    padding: 0 12px;
    position: relative;
    color: var(--dd-text-muted2);
    font-size: 0.82rem;
}
.dd-auth-form .dd-form-group { margin-bottom: 16px; }
.dd-auth-form input[type="text"],
.dd-auth-form input[type="password"],
.dd-auth-form input[type="email"] {
    width: 100%;
    padding: 11px 16px;
    border: 1px solid var(--dd-border);
    border-radius: var(--dd-radius);
    font-size: 0.9rem;
    font-family: inherit;
    transition: border-color var(--dd-transition), box-shadow var(--dd-transition);
    background: var(--dd-bg);
}
.dd-auth-form input:focus {
    outline: none;
    border-color: var(--dd-primary);
    box-shadow: 0 0 0 3px var(--dd-primary-shadow);
    background: var(--dd-bg-white);
}
.dd-auth-form input:hover { border-color: var(--dd-primary); opacity: 0.9; }
.dd-auth-alt {
    text-align: center;
    margin-top: 18px;
    font-size: 0.85rem;
    color: var(--dd-text-muted2);
}

/* ────── 15. 用户中心 ────── */
.dd-user-layout {
    display: flex;
    gap: 24px;
    padding-top: 24px;
    min-height: 60vh;
}
.dd-user-sidebar {
    width: 220px;
    flex-shrink: 0;
}
.dd-user-profile-card {
    background: var(--dd-bg-white);
    border-radius: var(--dd-radius);
    padding: 24px 20px;
    text-align: center;
    box-shadow: var(--dd-shadow);
    margin-bottom: 16px;
}
.dd-user-profile-card img {
    border-radius: 50%;
    width: 56px;
    height: 56px;
    margin-bottom: 10px;
    border: 3px solid var(--dd-primary-light);
}
.dd-user-profile-card h4 { font-size: 0.95rem; font-weight: 600; }

.dd-user-nav {
    background: var(--dd-bg-white);
    border-radius: var(--dd-radius);
    box-shadow: var(--dd-shadow);
    overflow: hidden;
}
.dd-user-nav a {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    border-bottom: 1px solid var(--dd-border-light);
    font-size: 0.88rem;
    color: var(--dd-text);
    transition: all 0.15s;
}
.dd-user-nav a:last-child { border-bottom: none; }
.dd-user-nav a:hover { background: var(--dd-primary-light); }
.dd-user-nav a.active {
    background: var(--dd-primary);
    color: #fff;
    font-weight: 500;
}

.dd-user-content {
    flex: 1;
    background: var(--dd-bg-white);
    border-radius: var(--dd-radius);
    padding: 28px;
    box-shadow: var(--dd-shadow);
}
.dd-user-content h2 {
    font-size: 1.15rem;
    font-weight: 600;
    margin-bottom: 20px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--dd-border);
}

/* ────── 16. 页面通用 ────── */
.dd-page { background: var(--dd-bg-white); border-radius: var(--dd-radius); padding: 28px; box-shadow: var(--dd-shadow); }
.dd-page-title { font-size: 1.3rem; font-weight: 700; margin-bottom: 20px; }
.dd-page-content { line-height: 1.85; }

/* 404 */
.dd-page-404 { text-align: center; padding: 80px 20px; }
.dd-404-content h1 { font-size: 5rem; color: var(--dd-primary); margin-bottom: 8px; font-weight: 800; }
.dd-404-content p { color: var(--dd-text-muted); margin-bottom: 24px; font-size: 1rem; }

/* ────── 17. 评论 ────── */
.dd-comments { margin-top: 24px; background: var(--dd-bg-white); border-radius: var(--dd-radius); padding: 24px; box-shadow: var(--dd-shadow); }
.dd-comments-title { font-size: 1rem; font-weight: 600; margin-bottom: 16px; }
.dd-comment-list { margin-bottom: 24px; }
.dd-comment-list .comment { padding: 14px 0; border-bottom: 1px solid var(--dd-border-light); }
.dd-comment-list .comment:last-child { border-bottom: none; }

/* ────── 18. 轮播 / 空状态 ────── */
.dd-empty { text-align: center; padding: 60px 20px; color: var(--dd-text-muted2); }
.dd-empty p { font-size: 0.9rem; }

/* ────── 19. 动画 ────── */
@keyframes dd-fade-in {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes dd-spin {
    to { transform: rotate(360deg); }
}
@keyframes dd-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}
.dd-anim-fade { animation: dd-fade-in 0.4s ease; }
.dd-loading {
    display: inline-block;
    width: 20px; height: 20px;
    border: 2px solid var(--dd-border);
    border-top-color: var(--dd-primary);
    border-radius: 50%;
    animation: dd-spin 0.6s linear infinite;
}

/* ────── 20. 管理员 Bar 补偿 ────── */
.admin-bar .dd-header { top: 32px; }
@media (max-width: 782px) {
    .admin-bar .dd-header { top: 46px; }
}
body { padding-top: 60px; }
