/**
 * 故纸堆门户 · 全局质感增强层
 * 在现有样式之上叠加：纸感层次、金线描边、景深阴影、精致交互
 */

:root {
    --gzd-premium-shadow-sm:
        0 1px 2px rgba(90, 48, 18, 0.05),
        0 3px 10px rgba(90, 48, 18, 0.07);
    --gzd-premium-shadow-md:
        0 4px 14px rgba(90, 48, 18, 0.09),
        0 12px 32px rgba(90, 48, 18, 0.11);
    --gzd-premium-shadow-lg:
        0 8px 24px rgba(90, 48, 18, 0.1),
        0 20px 52px rgba(90, 48, 18, 0.13);
    --gzd-premium-gold-line:
        linear-gradient(90deg,
            transparent 0%,
            rgba(166, 133, 37, 0.15) 12%,
            rgba(255, 227, 112, 0.65) 50%,
            rgba(166, 133, 37, 0.15) 88%,
            transparent 100%);
    --gzd-premium-paper-sheen:
        linear-gradient(145deg,
            rgba(255, 255, 255, 0.42) 0%,
            transparent 42%,
            rgba(201, 162, 39, 0.04) 100%);
}

/* ── 全局纸感氛围 ── */
html.gzd-portal-home-page body,
html.gzd-portal-search-page body,
html.gzd-login-html body,
html.gzd-about-html body,
html.gzd-video-html body,
html.gzd-advice-html body,
html.gzd-pdf-html body,
body:has(.page) {
    background-color: #FDF8E8;
    background-image:
        radial-gradient(ellipse 120% 80% at 50% -20%, rgba(255, 227, 112, 0.14) 0%, transparent 55%),
        radial-gradient(ellipse 90% 60% at 100% 100%, rgba(122, 62, 26, 0.05) 0%, transparent 50%),
        radial-gradient(ellipse 70% 50% at 0% 80%, rgba(201, 162, 39, 0.06) 0%, transparent 45%),
        url(/images/index_bg.gif);
    background-attachment: fixed, fixed, fixed, scroll;
}

/* ── 首页 ── */
html.gzd-portal-home-page .header {
    background:
        linear-gradient(180deg, rgba(255, 252, 245, 0.98) 0%, rgba(253, 248, 232, 0.94) 100%);
    border-bottom: 1px solid rgba(201, 162, 39, 0.28);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.9) inset,
        0 4px 20px rgba(90, 48, 18, 0.07);
}

html.gzd-portal-home-page .portal-stage {
    filter: drop-shadow(0 10px 36px rgba(90, 48, 18, 0.1));
}

html.gzd-portal-home-page .search-card {
    border-color: rgba(201, 162, 39, 0.38);
    box-shadow:
        var(--gzd-premium-shadow-md),
        inset 0 1px 0 rgba(255, 255, 255, 0.95),
        inset 0 0 0 1px rgba(255, 249, 240, 0.6);
}

html.gzd-portal-home-page .search-card::after {
    opacity: 0.85;
}

html.gzd-portal-home-page .search-input {
    border-width: 2px;
    border-color: rgba(201, 162, 39, 0.38);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.95),
        0 2px 8px rgba(90, 48, 18, 0.05);
    transition: border-color 0.22s ease, box-shadow 0.22s ease;
}

html.gzd-portal-home-page .search-input:focus {
    border-color: rgba(201, 162, 39, 0.68);
    box-shadow:
        0 0 0 3px rgba(201, 162, 39, 0.14),
        inset 0 1px 0 rgba(255, 255, 255, 0.98);
}

html.gzd-portal-home-page .search-btn {
    box-shadow:
        0 4px 16px rgba(90, 48, 18, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.18),
        inset 0 -2px 0 rgba(0, 0, 0, 0.08);
}

html.gzd-portal-home-page .search-btn:hover {
    box-shadow:
        0 6px 22px rgba(90, 48, 18, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.22);
    transform: translateY(-1px);
}

html.gzd-portal-home-page .search-tab.portal-chip.active,
html.gzd-portal-home-page .search-tab.portal-chip[aria-selected="true"] {
    box-shadow:
        0 3px 12px rgba(90, 48, 18, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

html.gzd-portal-home-page .resources-shell {
    border-color: rgba(201, 162, 39, 0.32);
    box-shadow: var(--gzd-premium-shadow-md);
}

html.gzd-portal-home-page .resource {
    transition: transform 0.28s cubic-bezier(0.34, 1.2, 0.64, 1), box-shadow 0.28s ease, border-color 0.22s ease;
}

html.gzd-portal-home-page .resource:hover,
html.gzd-portal-home-page .resource:focus-visible {
    transform: translateY(-3px);
    box-shadow:
        0 10px 28px rgba(90, 48, 18, 0.14),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

html.gzd-portal-home-page .home-elder-lane {
    border-top-color: rgba(201, 162, 39, 0.32);
    box-shadow: 0 -4px 24px rgba(90, 48, 18, 0.04);
}

html.gzd-portal-home-page .footer {
    border-top-color: rgba(201, 162, 39, 0.28);
    box-shadow: 0 -6px 28px rgba(90, 48, 18, 0.05);
}

/* ── 检索页 ── */
html.gzd-portal-search-page .search-header {
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.85) inset,
        0 4px 22px rgba(90, 48, 18, 0.08);
}

html.gzd-portal-search-page .search-sidebar {
    box-shadow:
        var(--gzd-premium-shadow-sm),
        inset 1px 0 0 rgba(255, 255, 255, 0.7);
}

html.gzd-portal-search-page:not(.gzd-portal-elder-page) .search-card--results {
    border-color: rgba(201, 162, 39, 0.34);
    box-shadow:
        var(--gzd-premium-shadow-md),
        inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

html.gzd-portal-search-page:not(.gzd-portal-elder-page) .search-card--results .search-query--primary {
    border-color: rgba(201, 162, 39, 0.55);
    box-shadow:
        0 6px 24px rgba(90, 48, 18, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.95),
        inset 0 0 0 1px rgba(255, 227, 112, 0.12);
}

html.gzd-portal-search-page:not(.gzd-portal-elder-page) .search-card--results .search-query--primary .search-query__input {
    border-color: rgba(201, 162, 39, 0.48);
    background:
        repeating-linear-gradient(0deg, transparent 0, transparent 1.58rem, rgba(201, 162, 39, 0.05) 1.58rem, rgba(201, 162, 39, 0.05) calc(1.58rem + 1px)),
        linear-gradient(180deg, #fffffa 0%, #fbf5e6 100%);
}

html.gzd-portal-search-page:not(.gzd-portal-elder-page) .search-card--results .search-query__submit {
    box-shadow:
        0 4px 16px rgba(90, 48, 18, 0.24),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

html.gzd-portal-search-page .results-archive {
    box-shadow: var(--gzd-premium-shadow-md);
    border-color: rgba(201, 162, 39, 0.3);
}

html.gzd-portal-search-page .results-table tbody tr:hover {
    background: linear-gradient(90deg, rgba(255, 249, 240, 0.65) 0%, rgba(252, 246, 230, 0.35) 100%);
}

html.gzd-portal-search-page .cluster-nav--sidebar {
    border-color: rgba(201, 162, 39, 0.22);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

html.gzd-portal-search-page .gzd-about-back,
html.gzd-portal-search-page .search-mode-toggle--header {
    box-shadow:
        0 3px 12px rgba(90, 48, 18, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.85);
    transition: transform 0.22s ease, box-shadow 0.22s ease;
}

html.gzd-portal-search-page .gzd-about-back:hover,
html.gzd-portal-search-page .search-mode-toggle--header:hover {
    transform: translateY(-1px);
    box-shadow:
        0 6px 20px rgba(90, 48, 18, 0.14),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

/* ── 大字模式 ── */
html.gzd-portal-elder-page .search-card,
html.gzd-portal-elder-page .search-card--results {
    box-shadow: var(--gzd-premium-shadow-md);
}

html.gzd-portal-elder-page .search-query--primary {
    box-shadow:
        0 6px 22px rgba(90, 48, 18, 0.12),
        inset 0 0 0 1px rgba(255, 227, 112, 0.15);
}

html.gzd-portal-elder-page .cluster-nav--elder-primary {
    border-color: rgba(201, 162, 39, 0.28);
    box-shadow: var(--gzd-premium-shadow-sm);
}

html.gzd-portal-elder-page .elder-home-header {
    box-shadow: 0 4px 18px rgba(90, 48, 18, 0.08);
}

html.gzd-portal-home-page.gzd-portal-elder-page .portal-stage,
html.gzd-portal-home-page.gzd-portal-elder-page .search-card {
    box-shadow: var(--gzd-premium-shadow-lg);
    border-color: rgba(201, 162, 39, 0.34);
}

html.gzd-portal-home-page.gzd-portal-elder-page .search-input {
    border-width: 2px;
    border-color: rgba(201, 162, 39, 0.42);
    font-size: 1.15rem;
}

html.gzd-portal-home-page.gzd-portal-elder-page .search-btn {
    box-shadow: 0 4px 18px rgba(90, 48, 18, 0.22);
}

/* ── 登录页 ── */
html.gzd-login-html body {
    background-image:
        radial-gradient(ellipse 100% 70% at 50% 0%, rgba(255, 227, 112, 0.16) 0%, transparent 60%),
        radial-gradient(ellipse 60% 40% at 0% 100%, rgba(122, 62, 26, 0.06) 0%, transparent 50%),
        url(/images/index_bg.gif);
}

html.gzd-login-html .login-card {
    border-color: rgba(201, 162, 39, 0.38);
    box-shadow: var(--gzd-premium-shadow-lg);
}

html.gzd-login-html .login-card::after {
    content: "";
    position: absolute;
    inset: 6px;
    border: 1px solid rgba(201, 162, 39, 0.12);
    border-radius: calc(var(--radius-lg) + 2px);
    pointer-events: none;
}

html.gzd-login-html .form-input {
    border-width: 2px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

html.gzd-login-html .form-input:focus {
    box-shadow: 0 0 0 3px rgba(201, 162, 39, 0.15);
}

html.gzd-login-html .btn-login {
    box-shadow:
        0 4px 16px rgba(90, 48, 18, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.18);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

html.gzd-login-html .btn-login:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 22px rgba(90, 48, 18, 0.28);
}

/* ── 卫星页（关于 / 视频 / 意见反馈）── */
.gzd-about-page .gzd-scroll-stage,
.gzd-video-page .gzd-video-card,
.gzd-advice-page .gzd-advice-card {
    box-shadow: var(--gzd-premium-shadow-lg);
    border-color: rgba(201, 162, 39, 0.32);
}

.gzd-video-wrap,
.gzd-advice-card {
    position: relative;
}

.gzd-video-wrap::before,
.gzd-advice-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 8%;
    right: 8%;
    height: 1px;
    background: var(--gzd-premium-gold-line);
    pointer-events: none;
    z-index: 1;
}

.gzd-satellite-header__bar {
    box-shadow:
        0 2px 14px rgba(90, 48, 18, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.88);
}

.gzd-about-back {
    transition: transform 0.22s cubic-bezier(0.34, 1.2, 0.64, 1), box-shadow 0.22s ease;
}

.gzd-about-back:hover {
    box-shadow:
        0 8px 26px rgba(90, 48, 18, 0.14),
        inset 0 1px 0 rgba(255, 255, 255, 1);
}

.gzd-about-page-title__text,
.gzd-video-page-title__text,
.gzd-advice-page-title__text {
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8);
}

.gzd-advice-btn--primary {
    box-shadow:
        0 4px 14px rgba(90, 48, 18, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.15);
}

.gzd-advice-btn--primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(90, 48, 18, 0.26);
}

.gzd-advice-textarea,
.gzd-advice-input {
    border-width: 2px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.gzd-advice-textarea:focus,
.gzd-advice-input:focus {
    box-shadow: 0 0 0 3px rgba(201, 162, 39, 0.14);
}

/* ── 使用帮助 PDF 页 ── */
html.gzd-pdf-html .gzd-pdf-chrome {
    box-shadow: 0 4px 20px rgba(90, 48, 18, 0.08);
}

html.gzd-pdf-html #outerContainer {
    box-shadow: var(--gzd-premium-shadow-md);
    border: 1px solid rgba(201, 162, 39, 0.22);
}

/* ── 错误页 403 / 404 / 500 / 提示 ── */
.page .header {
    box-shadow: 0 2px 16px rgba(90, 48, 18, 0.06);
}

.page .error-card {
    border-color: rgba(201, 162, 39, 0.36);
    box-shadow: var(--gzd-premium-shadow-lg);
}

.page .error-card::after {
    content: "";
    position: absolute;
    inset: 7px;
    border: 1px solid rgba(201, 162, 39, 0.1);
    border-radius: calc(var(--radius-lg) + 2px);
    pointer-events: none;
}

.page .error-code {
    color: rgba(166, 133, 37, 0.35);
    text-shadow:
        0 1px 0 rgba(255, 255, 255, 0.9),
        0 0 40px rgba(255, 227, 112, 0.25);
}

.page .btn-primary {
    box-shadow:
        0 4px 14px rgba(90, 48, 18, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.15);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.page .btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(90, 48, 18, 0.26);
}

.page .btn-secondary {
    transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}

.page .btn-secondary:hover {
    transform: translateY(-1px);
}

/* ── 全文阅读器 ── */
.gzd-ft-reader .gzd-ft-chrome {
    box-shadow: 0 4px 22px rgba(90, 48, 18, 0.09);
}

.gzd-ft-reader .gzd-ft-stage {
    box-shadow: var(--gzd-premium-shadow-md);
    border-color: rgba(201, 162, 39, 0.28);
}

/* ── 通用组件精修 ── */
.gzd-mini-scroll {
    filter: drop-shadow(0 2px 8px rgba(90, 48, 18, 0.12));
}

.gzd-mini-scroll__body {
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.pagination-btn.active {
    box-shadow:
        0 2px 8px rgba(90, 48, 18, 0.18),
        inset 0 1px 0 rgba(255, 255, 255, 0.15);
}

.cluster-nav__item.is-active,
.cluster-nav__chip.is-active {
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

/* ── 关于我们卷轴翻页 ── */
.gzd-about-nav-btn:not(:disabled) {
    transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.gzd-about-nav-btn:not(:disabled):hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(90, 48, 18, 0.12);
}

.gzd-scroll-roller {
    filter: drop-shadow(0 3px 10px rgba(90, 48, 18, 0.1));
}

/* ── 检索页字段标签 ── */
html.gzd-portal-search-page .search-tab.portal-chip {
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

html.gzd-portal-search-page .search-tab.portal-chip:hover {
    transform: translateY(-1px);
}

html.gzd-portal-search-page .search-tab.portal-chip.active,
html.gzd-portal-search-page .search-tab.portal-chip[aria-selected="true"] {
    box-shadow: 0 3px 12px rgba(90, 48, 18, 0.18);
}

/* ── 首页页脚链接 ── */
html.gzd-portal-home-page .footer-links a {
    transition: color 0.2s ease, text-shadow 0.2s ease;
}

html.gzd-portal-home-page .footer-links a:hover {
    text-shadow: 0 0 12px rgba(255, 227, 112, 0.35);
}

@media (prefers-reduced-motion: reduce) {
    html.gzd-portal-home-page .search-btn:hover,
    html.gzd-portal-home-page .resource:hover,
    html.gzd-portal-search-page .gzd-about-back:hover,
    html.gzd-login-html .btn-login:hover,
    .gzd-advice-btn--primary:hover,
    .page .btn-primary:hover,
    .page .btn-secondary:hover {
        transform: none;
    }
}

@media (prefers-contrast: more) {
    html.gzd-portal-home-page .search-card,
    html.gzd-portal-search-page .search-card--results,
    .page .error-card,
    html.gzd-login-html .login-card {
        border-width: 3px;
    }
}
