/**
 * 后台管理 — Apple 系「玻璃」质感（半透明 + backdrop-filter）；明暗主题；
 * prefers-reduced-transparency / @supports 回退实体色；:focus-visible 保留。
 */
*,
*::before,
*::after {
    box-sizing: border-box;
}

:root {
    color-scheme: light;
    --admin-font:
        -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB",
        "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;

    --admin-radius-xs: 8px;
    --admin-radius-sm: 11px;
    --admin-radius-md: 13px;
    --admin-radius-lg: 16px;
    --admin-radius-xl: 20px;
    --admin-sidebar-w: 264px;

    /* 玻璃参数 */
    --admin-blur-bar: 56px;
    --admin-blur-panel: 40px;
    --admin-blur-chip: 24px;
    --admin-sat: 1.85;

    --admin-glass-tint: rgba(255, 255, 255, 0.38);
    --admin-glass-tint-strong: rgba(255, 255, 255, 0.52);
    --admin-glass-edge: rgba(255, 255, 255, 0.72);
    --admin-glass-edge-soft: rgba(255, 255, 255, 0.35);
    --admin-glass-outer: rgba(0, 0, 0, 0.05);

    --admin-text: #1d1d1f;
    --admin-text-muted: #636366;
    --admin-text-dim: #8e8e93;
    --admin-sidebar-heading: #6e6e73;

    --admin-nav-item: #3a3a3c;
    --admin-nav-active-bg: rgba(234, 179, 8, 0.28);
    --admin-nav-active-fg: #5c3d05;
    --admin-nav-marker: #d97706;

    --admin-primary: #eab308;
    --admin-primary-ink: #1c1917;
    --admin-danger: #b91c1c;
    --admin-focus-ring: rgba(234, 179, 8, 0.5);

    /* 实体回退（无 blur 支持时） */
    --admin-fallback-sidebar: #ebebe9;
    --admin-fallback-card: #f8f8f6;
    --admin-fallback-page: #dedcd8;

    --admin-modal-scrim: rgba(10, 10, 12, 0.42);
    --admin-scrollbar: rgba(0, 0, 0, 0.15);

    --admin-shadow-glass:
        0 0 0 1px rgba(255, 255, 255, 0.55) inset,
        0 1px 1px rgba(255, 255, 255, 0.35) inset,
        0 8px 32px rgba(0, 0, 0, 0.07),
        0 2px 8px rgba(0, 0, 0, 0.04);
}

html.admin-dark {
    color-scheme: dark;
    --admin-glass-tint: rgba(35, 35, 40, 0.58);
    --admin-glass-tint-strong: rgba(48, 48, 54, 0.68);
    --admin-glass-edge: rgba(255, 255, 255, 0.16);
    --admin-glass-edge-soft: rgba(255, 255, 255, 0.07);
    --admin-glass-outer: rgba(0, 0, 0, 0.45);

    --admin-text: #f5f5f7;
    --admin-text-muted: #a1a1a6;
    --admin-text-dim: #6e6e73;
    --admin-sidebar-heading: #98989d;

    --admin-nav-item: #d1d1d6;
    --admin-nav-active-bg: rgba(234, 179, 8, 0.2);
    --admin-nav-active-fg: #ffe066;
    --admin-nav-marker: #fbbf24;

    --admin-fallback-sidebar: #1c1c1e;
    --admin-fallback-card: #2c2c2e;
    --admin-fallback-page: #000000;

    --admin-modal-scrim: rgba(0, 0, 0, 0.52);
    --admin-scrollbar: rgba(255, 255, 255, 0.12);

    --admin-shadow-glass:
        0 0 0 1px rgba(255, 255, 255, 0.1) inset,
        0 1px 0 rgba(255, 255, 255, 0.06) inset,
        0 16px 48px rgba(0, 0, 0, 0.45),
        0 4px 16px rgba(0, 0, 0, 0.25);
}

@media (prefers-reduced-transparency: reduce) {
    :root {
        --admin-glass-tint: rgba(248, 248, 246, 0.94);
        --admin-glass-tint-strong: rgba(255, 255, 255, 0.96);
        --admin-blur-bar: 0px;
        --admin-blur-panel: 0px;
        --admin-blur-chip: 0px;
        --admin-sat: 1;
    }
    html.admin-dark {
        --admin-glass-tint: rgba(28, 28, 30, 0.96);
        --admin-glass-tint-strong: rgba(44, 44, 46, 0.98);
    }
}

html.h-full,
body.h-full.admin-login-body {
    height: 100%;
}

/* 壁纸层：供玻璃折射 */
body {
    margin: 0;
    display: flex;
    height: 100vh;
    overflow: hidden;
    color: var(--admin-text);
    font-family: var(--admin-font);
    font-size: 15px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;

    background-color: var(--admin-fallback-page);
    background-image:
        radial-gradient(900px 520px at 12% -8%, rgba(234, 179, 8, 0.16), transparent 55%),
        radial-gradient(700px 480px at 92% 4%, rgba(100, 160, 255, 0.11), transparent 50%),
        radial-gradient(800px 600px at 48% 108%, rgba(255, 190, 120, 0.1), transparent 55%),
        linear-gradient(168deg, #ddd9d2 0%, #e8e6e2 38%, #dfdcd6 100%);
    background-attachment: fixed;
}

html.admin-dark body {
    background-image:
        radial-gradient(720px 420px at 15% 0%, rgba(234, 179, 8, 0.12), transparent 50%),
        radial-gradient(600px 400px at 85% 8%, rgba(80, 130, 255, 0.08), transparent 48%),
        linear-gradient(180deg, #000000 0%, #0c0c0e 45%, #070708 100%);
}

@media (max-width: 768px) {
    input[type='text'],
    input[type='password'],
    input[type='email'],
    input[type='number'],
    input[type='search'],
    textarea {
        font-size: 16px !important;
    }
}

::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}
::-webkit-scrollbar-track {
    background: transparent;
}
::-webkit-scrollbar-thumb {
    background: var(--admin-scrollbar);
    border-radius: 100px;
    border: 2px solid transparent;
    background-clip: padding-box;
}

::selection {
    background-color: rgba(234, 179, 8, 0.32);
    color: inherit;
}
::-moz-selection {
    background-color: rgba(234, 179, 8, 0.32);
    color: inherit;
}

.admin-glass {
    background: var(--admin-glass-tint);
    -webkit-backdrop-filter: blur(var(--admin-blur-panel)) saturate(var(--admin-sat));
    backdrop-filter: blur(var(--admin-blur-panel)) saturate(var(--admin-sat));
    border: 1px solid var(--admin-glass-edge-soft);
    box-shadow: var(--admin-shadow-glass);
}

/* ── 侧栏（玻璃分隔条）── */
#admin-sidebar {
    width: var(--admin-sidebar-w);
    min-width: var(--admin-sidebar-w);
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    height: 100vh;
    position: relative;
    background: var(--admin-fallback-sidebar);
    border-right: 1px solid var(--admin-glass-edge-soft);
}

@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    @media not (prefers-reduced-transparency: reduce) {
        #admin-sidebar {
            background: var(--admin-glass-tint-strong);
            -webkit-backdrop-filter: blur(var(--admin-blur-bar)) saturate(var(--admin-sat));
            backdrop-filter: blur(var(--admin-blur-bar)) saturate(var(--admin-sat));
            box-shadow:
                inset -1px 0 0 var(--admin-glass-edge-soft),
                4px 0 24px var(--admin-glass-outer);
        }
    }
}

.admin-sidebar__header {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 24px 20px 20px;
    border-bottom: 1px solid var(--admin-glass-edge-soft);
}

.admin-sidebar__logo-wrap {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: var(--admin-radius-md);
    background: var(--admin-glass-tint);
    border: 1px solid var(--admin-glass-edge-soft);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 7px;
    -webkit-backdrop-filter: blur(var(--admin-blur-chip)) saturate(var(--admin-sat));
    backdrop-filter: blur(var(--admin-blur-chip)) saturate(var(--admin-sat));
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.28) inset, 0 4px 12px rgba(0, 0, 0, 0.06);
}

@media (prefers-reduced-transparency: reduce) {
    .admin-sidebar__logo-wrap {
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
        background: rgba(255, 255, 255, 0.55);
        box-shadow: none;
    }
    html.admin-dark .admin-sidebar__logo-wrap {
        background: rgba(60, 60, 66, 0.9);
    }
}

.admin-sidebar__logo-wrap img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 10px;
}

.admin-sidebar__meta {
    flex: 1;
    min-width: 0;
}

.admin-sidebar__label {
    display: inline-block;
    margin-top: 6px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--admin-sidebar-heading);
}

.site-title {
    color: var(--admin-text);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.2;
}

.site-user {
    margin-top: 4px;
    color: var(--admin-text-muted);
    font-size: 12px;
    font-weight: 500;
}

.sidebar-nav {
    flex: 1;
    overflow-y: auto;
    padding: 12px 10px 16px;
}

.sidebar-nav::-webkit-scrollbar {
    width: 5px;
}

.nav-section {
    font-size: 10px;
    font-weight: 700;
    color: var(--admin-sidebar-heading);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    padding: 18px 14px 8px;
}

#admin-sidebar .nav-item {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 14px 11px 18px;
    margin: 3px 8px;
    font-size: 14px;
    font-weight: 500;
    color: var(--admin-nav-item);
    text-decoration: none;
    border-radius: var(--admin-radius-sm);
    border: 1px solid transparent;
    background: transparent;
    cursor: pointer;
    width: calc(100% - 16px);
    box-sizing: border-box;
    text-align: left;
}

#admin-sidebar .nav-item i {
    font-size: 18px;
    flex-shrink: 0;
    opacity: 0.9;
    width: 1.25rem;
    text-align: center;
}

#admin-sidebar .nav-item:hover {
    background: transparent;
    color: var(--admin-nav-item);
}

#admin-sidebar .nav-item.active {
    background: var(--admin-nav-active-bg);
    color: var(--admin-nav-active-fg);
    font-weight: 600;
    border-color: var(--admin-glass-edge-soft);
    -webkit-backdrop-filter: blur(var(--admin-blur-chip)) saturate(var(--admin-sat));
    backdrop-filter: blur(var(--admin-blur-chip)) saturate(var(--admin-sat));
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.12) inset;
}

html.admin-dark #admin-sidebar .nav-item.active {
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.06) inset;
}

#admin-sidebar .nav-item.active::before {
    content: '';
    position: absolute;
    left: 8px;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 52%;
    min-height: 18px;
    border-radius: 3px;
    background: var(--admin-nav-marker);
    box-shadow: 0 0 12px rgba(234, 179, 8, 0.45);
}

#admin-sidebar .nav-item.active i {
    color: inherit;
    opacity: 1;
}

#admin-sidebar .nav-item:focus-visible {
    outline: 2px solid var(--admin-focus-ring);
    outline-offset: 2px;
}

.sidebar-footer {
    padding: 12px 8px 18px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    border-top: 1px solid var(--admin-glass-edge-soft);
}

/* ── 主区（透至 body 壁纸）── */
#admin-main {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    height: 100vh;
    color: var(--admin-text);
    background: transparent;
}

.admin-page.min-h-screen {
    min-height: 100vh;
}

#admin-main h1.text-2xl,
#admin-main h2.text-xl {
    font-family: var(--admin-font);
    letter-spacing: -0.03em;
    color: var(--admin-text);
}

#admin-main h1.text-2xl {
    font-size: 1.65rem;
    font-weight: 700;
    line-height: 1.2;
}

/* 玻璃卡片（块级） */
@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    @media not (prefers-reduced-transparency: reduce) {
        #admin-main div.rounded-xl.border,
        #edit-modal div.rounded-2xl.border,
        #edit-modal .rounded-2xl.bg-white,
        #admin-main .article-item {
            background: var(--admin-glass-tint) !important;
            -webkit-backdrop-filter: blur(var(--admin-blur-panel)) saturate(var(--admin-sat)) !important;
            backdrop-filter: blur(var(--admin-blur-panel)) saturate(var(--admin-sat)) !important;
            border-color: var(--admin-glass-edge-soft) !important;
            border-radius: var(--admin-radius-lg) !important;
            box-shadow: var(--admin-shadow-glass) !important;
        }
    }
}

@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    #admin-main div.rounded-xl.border,
    #edit-modal div.rounded-2xl.border,
    #edit-modal .rounded-2xl.bg-white,
    #admin-main .article-item {
        background-color: var(--admin-fallback-card) !important;
        border-radius: var(--admin-radius-lg) !important;
        border-color: rgba(0, 0, 0, 0.08) !important;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
    }
    html.admin-dark #admin-main div.rounded-xl.border,
    html.admin-dark #edit-modal .rounded-2xl.bg-white,
    html.admin-dark #admin-main .article-item {
        background-color: var(--admin-fallback-card) !important;
    }
}

@media (prefers-reduced-transparency: reduce) {
    #admin-main div.rounded-xl.border,
    #edit-modal div.rounded-2xl.border,
    #edit-modal .rounded-2xl.bg-white,
    #admin-main .article-item {
        -webkit-backdrop-filter: none !important;
        backdrop-filter: none !important;
        background: var(--admin-fallback-card) !important;
        border-color: rgba(0, 0, 0, 0.06) !important;
    }
    html.admin-dark #admin-main div.rounded-xl.border,
    html.admin-dark #edit-modal div.rounded-2xl.border,
    html.admin-dark #edit-modal .rounded-2xl.bg-white,
    html.admin-dark #admin-main .article-item {
        border-color: rgba(255, 255, 255, 0.1) !important;
    }
}

#admin-main a:focus-visible,
#admin-main button:focus-visible,
#edit-modal button:focus-visible,
#edit-modal a:focus-visible {
    outline: 2px solid var(--admin-focus-ring);
    outline-offset: 3px;
    border-radius: var(--admin-radius-xs);
}

/* Tab 外层：玻璃凹槽 */
.admin-tabs {
    display: flex;
    gap: 6px;
    padding: 6px;
    background: rgba(255, 255, 255, 0.22);
    border: 1px solid var(--admin-glass-edge-soft);
    border-radius: var(--admin-radius-md);
    -webkit-backdrop-filter: blur(var(--admin-blur-chip)) saturate(var(--admin-sat));
    backdrop-filter: blur(var(--admin-blur-chip)) saturate(var(--admin-sat));
    box-shadow:
        inset 0 1px 1px rgba(255, 255, 255, 0.35),
        0 4px 16px rgba(0, 0, 0, 0.05);
}

html.admin-dark .admin-tabs {
    background: rgba(0, 0, 0, 0.22);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.05),
        0 6px 20px rgba(0, 0, 0, 0.25);
}

.admin-tabs .tab-btn {
    border-radius: var(--admin-radius-xs);
}

@media (prefers-reduced-transparency: reduce) {
    .admin-tabs {
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
        background: rgba(240, 240, 238, 0.95);
    }
    html.admin-dark .admin-tabs {
        background: rgba(36, 36, 40, 0.95);
    }
}

.admin-tabs .tab-btn.bg-white {
    background: var(--admin-glass-tint-strong) !important;
    border: 1px solid var(--admin-glass-edge-soft) !important;
    box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.45) inset,
        0 4px 12px rgba(0, 0, 0, 0.06) !important;
    -webkit-backdrop-filter: blur(var(--admin-blur-chip)) saturate(var(--admin-sat));
    backdrop-filter: blur(var(--admin-blur-chip)) saturate(var(--admin-sat));
}

@media (prefers-reduced-transparency: reduce) {
    .admin-tabs .tab-btn.bg-white {
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
    }
}

/* 弱化 Tailwind 实色与白底补丁，避免盖掉上面的玻璃规则（特异度压低或改条件） */
html.admin-dark #admin-main .divide-gray-50 > * + * {
    border-color: rgba(255, 255, 255, 0.08) !important;
}

html.admin-dark #admin-main .text-gray-900,
html.admin-dark #edit-modal .text-gray-900 {
    color: var(--admin-text) !important;
}

html.admin-dark #admin-main .text-gray-700,
html.admin-dark #admin-main .text-gray-600,
html.admin-dark #edit-modal .text-gray-700 {
    color: var(--admin-text-muted) !important;
}

html.admin-dark #admin-main .text-gray-500 {
    color: var(--admin-text-muted) !important;
}

html.admin-dark #admin-main .text-gray-400,
html.admin-dark #edit-modal .text-gray-400 {
    color: var(--admin-text-dim) !important;
}

/* 次级灰块（非圆角大卡）仍可半透明 */
html.admin-dark #admin-main .bg-gray-50,
html.admin-dark #admin-main .bg-gray-100,
html.admin-dark #edit-modal .bg-gray-100 {
    background-color: rgba(255, 255, 255, 0.06) !important;
}

html.admin-dark #admin-main .border-gray-50,
html.admin-dark #admin-main .border-gray-100,
html.admin-dark #admin-main .border-gray-200,
html.admin-dark #admin-main .border-gray-300,
html.admin-dark #edit-modal .border-gray-300 {
    border-color: rgba(255, 255, 255, 0.1) !important;
}

#edit-modal {
    background-color: var(--admin-modal-scrim) !important;
    -webkit-backdrop-filter: blur(28px) saturate(1.4);
    backdrop-filter: blur(28px) saturate(1.4);
}

@media (prefers-reduced-transparency: reduce) {
    #edit-modal {
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
        background-color: rgba(10, 10, 12, 0.75) !important;
    }
}

/* 主按钮：保持实心琥珀（玻璃上仍可辨） */
#admin-main button.bg-black:not(:disabled),
#edit-modal button.bg-black:not(:disabled),
#admin-main a.bg-black:not(:disabled) {
    background: linear-gradient(180deg, #fde047 0%, var(--admin-primary) 98%) !important;
    color: var(--admin-primary-ink) !important;
    font-weight: 600;
    letter-spacing: 0.01em;
    border-radius: var(--admin-radius-sm) !important;
    border: 1px solid rgba(180, 120, 0, 0.25) !important;
    box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.35) inset,
        0 6px 20px rgba(234, 179, 8, 0.25);
}

html.admin-dark #admin-main button.bg-black:not(:disabled),
html.admin-dark #edit-modal button.bg-black:not(:disabled),
html.admin-dark #admin-main a.bg-black:not(:disabled) {
    background: linear-gradient(180deg, #fde047 0%, #ca8a04 100%) !important;
    color: #1c1917 !important;
    border-color: rgba(0, 0, 0, 0.25) !important;
    box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.2) inset,
        0 8px 28px rgba(0, 0, 0, 0.45);
}

.admin-icon-danger {
    color: var(--admin-danger);
}

.admin-panel-head {
    background: rgba(255, 255, 255, 0.14);
    border-bottom: 1px solid var(--admin-glass-edge-soft);
    -webkit-backdrop-filter: blur(12px) saturate(1.3);
    backdrop-filter: blur(12px) saturate(1.3);
}

html.admin-dark .admin-panel-head {
    background: rgba(0, 0, 0, 0.2);
}

@media (prefers-reduced-transparency: reduce) {
    .admin-panel-head {
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
        background: rgba(245, 245, 243, 0.92);
    }
    html.admin-dark .admin-panel-head {
        background: rgba(40, 40, 44, 0.92);
    }
}

html.admin-dark #admin-main button.bg-gray-100,
html.admin-dark #edit-modal button.bg-gray-100 {
    background: rgba(255, 255, 255, 0.1) !important;
    color: var(--admin-text) !important;
    border: 1px solid rgba(255, 255, 255, 0.12);
}

/* 表单：略玻璃化，保证可读 */
#admin-main input:not([type='checkbox']):not([type='radio']),
#admin-main textarea,
#admin-main select {
    border-radius: var(--admin-radius-xs) !important;
}

#admin-main input:not([type='checkbox']):not([type='radio']),
#admin-main textarea,
#admin-main select {
    background: rgba(255, 255, 255, 0.45) !important;
    border-color: var(--admin-glass-edge-soft) !important;
    -webkit-backdrop-filter: blur(8px) saturate(1.2);
    backdrop-filter: blur(8px) saturate(1.2);
}

html.admin-dark #admin-main input:not([type='checkbox']):not([type='radio']),
html.admin-dark #admin-main textarea,
html.admin-dark #admin-main select {
    background: rgba(0, 0, 0, 0.35) !important;
    color: var(--admin-text) !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
}

@media (prefers-reduced-transparency: reduce) {
    #admin-main input:not([type='checkbox']):not([type='radio']),
    #admin-main textarea,
    #admin-main select {
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
        background: rgba(255, 255, 255, 0.88) !important;
    }
    html.admin-dark #admin-main input:not([type='checkbox']):not([type='radio']),
    html.admin-dark #admin-main textarea,
    html.admin-dark #admin-main select {
        background: rgba(36, 36, 40, 0.95) !important;
    }
}

/* ── 登录（玻璃浮层）── */
body.admin-login-body {
    display: block;
    height: auto;
    min-height: 100vh;
    overflow-x: hidden;
}

.admin-login-wrap {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
}

.admin-login-card {
    color: var(--admin-text);
    border-radius: var(--admin-radius-xl);
    padding: 2.25rem 2.5rem;
    background: var(--admin-fallback-card);
    border: 1px solid rgba(0, 0, 0, 0.08);
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.12);
}

@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    @media not (prefers-reduced-transparency: reduce) {
        .admin-login-card {
            background: var(--admin-glass-tint);
            border: 1px solid var(--admin-glass-edge-soft);
            -webkit-backdrop-filter: blur(var(--admin-blur-panel)) saturate(var(--admin-sat));
            backdrop-filter: blur(var(--admin-blur-panel)) saturate(var(--admin-sat));
            box-shadow: var(--admin-shadow-glass), 0 24px 80px rgba(0, 0, 0, 0.1);
        }
        html.admin-dark .admin-login-card {
            box-shadow: var(--admin-shadow-glass), 0 32px 90px rgba(0, 0, 0, 0.55);
        }
    }
}

.admin-login-body .admin-login-title {
    color: var(--admin-text);
    letter-spacing: -0.04em;
}

.admin-login-body .admin-login-muted {
    color: var(--admin-text-muted);
}

.admin-login-body input.admin-login-input {
    width: 100%;
    padding: 0.75rem 1rem 0.75rem 2.65rem;
    border: 1px solid var(--admin-glass-edge-soft);
    border-radius: var(--admin-radius-sm);
    font-size: 0.9375rem;
    color: var(--admin-text);
    font-family: var(--admin-font);
    background: rgba(255, 255, 255, 0.4);
    -webkit-backdrop-filter: blur(12px) saturate(1.2);
    backdrop-filter: blur(12px) saturate(1.2);
}

html.admin-dark .admin-login-body input.admin-login-input {
    background: rgba(0, 0, 0, 0.35);
    border-color: rgba(255, 255, 255, 0.12);
}

@media (prefers-reduced-transparency: reduce) {
    .admin-login-body input.admin-login-input {
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
        background: rgba(255, 255, 255, 0.92);
    }
    html.admin-dark .admin-login-body input.admin-login-input {
        background: rgba(36, 36, 40, 0.96);
    }
}

.admin-login-body input.admin-login-input:focus {
    outline: none;
    border-color: rgba(234, 179, 8, 0.65);
    box-shadow: 0 0 0 3px var(--admin-focus-ring);
}

.admin-login-body .btn-login-submit {
    width: 100%;
    padding: 0.85rem 1rem;
    border-radius: var(--admin-radius-sm);
    border: 1px solid rgba(180, 120, 0, 0.28);
    font-weight: 600;
    font-size: 0.9375rem;
    font-family: var(--admin-font);
    background: linear-gradient(180deg, #fde047 0%, var(--admin-primary) 98%);
    color: var(--admin-primary-ink);
    cursor: pointer;
    box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.35) inset,
        0 8px 24px rgba(234, 179, 8, 0.28);
}

html.admin-dark .admin-login-body .btn-login-submit {
    border-color: rgba(0, 0, 0, 0.3);
    box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.18) inset,
        0 10px 32px rgba(0, 0, 0, 0.5);
}

.admin-login-body .btn-login-submit:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.admin-login-label {
    display: block;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--admin-text-muted);
    margin-bottom: 0.5rem;
}

.admin-login-back {
    color: var(--admin-text-muted);
    text-decoration: none;
    font-weight: 500;
}

.admin-login-back:focus-visible {
    outline: 2px solid var(--admin-focus-ring);
    outline-offset: 2px;
    border-radius: 4px;
}

.admin-login-eye-btn {
    background: none;
    border: none;
    padding: 0.25rem;
    color: var(--admin-text-dim);
    cursor: pointer;
}

.admin-login-eye-btn:focus-visible {
    outline: 2px solid var(--admin-focus-ring);
    outline-offset: 2px;
    border-radius: 4px;
}

.admin-login-corner {
    position: fixed;
    top: 1.25rem;
    right: 1.25rem;
    z-index: 20;
}

.admin-theme-switch {
    width: 46px;
    height: 46px;
    border-radius: 9999px;
    border: 1px solid var(--admin-glass-edge-soft);
    background: var(--admin-glass-tint);
    color: var(--admin-text-muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    -webkit-backdrop-filter: blur(var(--admin-blur-chip)) saturate(var(--admin-sat));
    backdrop-filter: blur(var(--admin-blur-chip)) saturate(var(--admin-sat));
    box-shadow: var(--admin-shadow-glass);
}

@media (prefers-reduced-transparency: reduce) {
    .admin-theme-switch {
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
        background: rgba(245, 245, 243, 0.95);
    }
    html.admin-dark .admin-theme-switch {
        background: rgba(50, 50, 55, 0.95);
    }
}

.admin-theme-switch:focus-visible {
    outline: 2px solid var(--admin-focus-ring);
    outline-offset: 2px;
}

.admin-theme-switch .theme-icon-light {
    display: none;
}

html.admin-dark .admin-theme-switch .theme-icon-dark {
    display: none;
}

html.admin-dark .admin-theme-switch .theme-icon-light {
    display: inline;
}

/* ═══════════════════════════════════════════════════════════
 * 手机端：侧栏隐藏为抽屉（点开推入 + 右侧内容右移并模糊）
 * ═══════════════════════════════════════════════════════════ */
.admin-mobile-bar,
.admin-drawer-close-btn {
    display: none;
}

.admin-mobile-scrim {
    display: none;
}

@media (max-width: 768px) {
    :root {
        --admin-drawer-w: min(300px, 86vw);
    }

    .admin-mobile-bar {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: calc(10px + env(safe-area-inset-top, 0px)) 14px 12px calc(14px + env(safe-area-inset-left, 0px));
        margin: 0 0 4px;
        position: sticky;
        top: 0;
        z-index: 30;
        -webkit-backdrop-filter: blur(16px) saturate(1.2);
        backdrop-filter: blur(16px) saturate(1.2);
        background: rgba(245, 244, 240, 0.38);
        border-bottom: 1px solid rgba(255, 255, 255, 0.32);
        margin-inline: -2px;
    }

    html.admin-dark .admin-mobile-bar {
        background: rgba(18, 18, 21, 0.45);
        border-bottom-color: rgba(255, 255, 255, 0.08);
    }

    .admin-menu-toggle-btn {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        padding: 0;
        border: 1px solid var(--admin-glass-edge-soft);
        border-radius: 12px;
        background: var(--admin-glass-tint-strong);
        -webkit-backdrop-filter: blur(var(--admin-blur-chip)) saturate(var(--admin-sat));
        backdrop-filter: blur(var(--admin-blur-chip)) saturate(var(--admin-sat));
        color: var(--admin-text);
        cursor: pointer;
        font-size: 1.35rem;
        box-shadow: var(--admin-shadow-glass);
    }

    .admin-menu-toggle-btn:focus-visible {
        outline: 2px solid var(--admin-focus-ring);
        outline-offset: 3px;
    }

    @media (prefers-reduced-transparency: reduce) {
        .admin-mobile-bar {
            -webkit-backdrop-filter: none;
            backdrop-filter: none;
            background: rgba(244, 244, 240, 0.92);
        }
        html.admin-dark .admin-mobile-bar {
            background: rgba(26, 26, 29, 0.94);
        }
        .admin-menu-toggle-btn {
            -webkit-backdrop-filter: none;
            backdrop-filter: none;
        }
    }

    /* 抽屉侧栏（默认移出屏幕） */
    #admin-sidebar {
        position: fixed;
        left: 0;
        top: 0;
        bottom: 0;
        width: var(--admin-drawer-w);
        min-width: 0;
        max-width: 100vw;
        z-index: 1040;
        flex-shrink: 0;
        margin: 0;
        transform: translate3d(-100%, 0, 0);
        transition: transform 0.34s cubic-bezier(0.32, 0.72, 0, 1);
        will-change: transform;
        box-shadow: none;
        border-right: 1px solid var(--admin-glass-edge-soft);
        padding-top: env(safe-area-inset-top, 0px);
    }

    body.admin-mobile-nav-open #admin-sidebar {
        transform: translate3d(0, 0, 0);
        box-shadow: 8px 0 40px rgba(0, 0, 0, 0.16);
    }

    html.admin-dark body.admin-mobile-nav-open #admin-sidebar {
        box-shadow: 12px 0 48px rgba(0, 0, 0, 0.55);
    }

    /* 主区铺满宽；展开时整块右移 + 模糊 */
    #admin-main {
        flex: 1;
        width: 100%;
        min-width: 0;
        position: relative;
        z-index: 1010;
        transition:
            transform 0.34s cubic-bezier(0.32, 0.72, 0, 1),
            filter 0.34s cubic-bezier(0.32, 0.72, 0, 1);
    }

    body.admin-mobile-nav-open #admin-main {
        transform: translate3d(var(--admin-drawer-w), 0, 0);
        -webkit-filter: blur(13px) saturate(0.92);
        filter: blur(13px) saturate(0.92);
    }

    /* 半透明点击层盖在推开后的内容上，收回抽屉 */
    .admin-mobile-scrim {
        display: block;
        position: fixed;
        top: 0;
        bottom: 0;
        left: var(--admin-drawer-w);
        right: 0;
        z-index: 1035;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        background: rgba(0, 0, 0, 0.12);
        -webkit-transition: opacity 0.32s cubic-bezier(0.32, 0.72, 0, 1), visibility 0.32s;
        transition: opacity 0.32s cubic-bezier(0.32, 0.72, 0, 1), visibility 0.32s;
        -webkit-backdrop-filter: blur(6px);
        backdrop-filter: blur(6px);
    }

    html.admin-dark .admin-mobile-scrim {
        background: rgba(0, 0, 0, 0.32);
    }

    body.admin-mobile-nav-open .admin-mobile-scrim {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    /* 抽屉内展示完整文案与分区 */
    #admin-sidebar .admin-sidebar__meta {
        display: flex !important;
        flex-direction: column;
    }

    #admin-sidebar .nav-section,
    #admin-sidebar a.nav-item span,
    #admin-sidebar .admin-sidebar__label {
        display: block !important;
    }

    #admin-sidebar .theme-toggle-label {
        display: inline !important;
    }

    .admin-sidebar__header {
        flex-direction: row;
        align-items: flex-start;
        gap: 12px;
        position: relative;
        padding: 14px calc(52px + env(safe-area-inset-right, 0px)) 14px calc(14px + env(safe-area-inset-left, 0px));
    }

    /* 关闭按钮仅在手机抽屉显示 */
    .admin-drawer-close-btn {
        display: flex;
        align-items: center;
        justify-content: center;
        position: absolute;
        top: 14px;
        right: calc(12px + env(safe-area-inset-right, 0px));
        width: 40px;
        height: 40px;
        padding: 0;
        margin: 0;
        border: 1px solid var(--admin-glass-edge-soft);
        border-radius: 12px;
        background: var(--admin-glass-tint-strong);
        -webkit-backdrop-filter: blur(var(--admin-blur-chip)) saturate(var(--admin-sat));
        backdrop-filter: blur(var(--admin-blur-chip)) saturate(var(--admin-sat));
        color: var(--admin-text);
        cursor: pointer;
        font-size: 1.25rem;
        z-index: 2;
    }

    .admin-drawer-close-btn:focus-visible {
        outline: 2px solid var(--admin-focus-ring);
        outline-offset: 3px;
    }

    .admin-sidebar__logo-wrap {
        width: 40px;
        height: 40px;
    }

    #admin-sidebar .nav-item {
        justify-content: flex-start;
        padding: 11px 14px 11px 18px;
        margin: 3px 8px;
        width: calc(100% - 16px);
    }

    #admin-sidebar .nav-item i {
        margin: 0;
        text-align: center;
    }

    #admin-sidebar .nav-item.active::before {
        left: 8px;
        height: 52%;
    }

    .sidebar-footer {
        padding: 12px 8px calc(14px + env(safe-area-inset-bottom, 0px));
    }

    /* 无障碍：弱化动效时关掉模糊与其它过渡 */
    @media (prefers-reduced-motion: reduce) {
        body.admin-mobile-nav-open #admin-main {
            filter: none;
            opacity: 0.88;
        }
        .admin-mobile-scrim {
            -webkit-backdrop-filter: none;
            backdrop-filter: none;
        }
    }

    /* 无障碍：减弱透明度时使用略暗底色代替模糊栈 */
    @media (prefers-reduced-transparency: reduce) {
        body.admin-mobile-nav-open #admin-main {
            -webkit-filter: none;
            filter: none;
            opacity: 0.78;
        }
        .admin-mobile-scrim {
            -webkit-backdrop-filter: none;
            backdrop-filter: none;
            background: rgba(0, 0, 0, 0.38);
        }
    }

    /* 抽屉打开时表单弹层级仍高于抽屉 */
    #edit-modal {
        z-index: 10600 !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    * {
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
    }
}
