/* 登录页样式：整页背景图 + 玻璃卡片。
   无动画、无外部资源（图片取自本站静态目录）、无字体下载。 */

:root {
    --ink: #f4f8ff;
    --ink-2: rgba(226, 236, 255, 0.78);
    --ink-3: rgba(198, 214, 245, 0.55);
    --accent: #9fd8f7;
    --font: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC",
        system-ui, -apple-system, "Segoe UI", sans-serif;
}

html {
    background: #0a1226;
}

body {
    margin: 0;
    min-height: 100vh;
    padding: 2rem 1.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    /* 必须透明，否则会盖住下面 z-index 为负的背景层 */
    background: transparent;
    color: var(--ink);
    font: 16px/1.6 var(--font);
    -webkit-font-smoothing: antialiased;
    text-shadow: 0 1px 14px rgba(3, 10, 28, 0.6);
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -2;
    background: url("img/sky.jpg") center / cover no-repeat;
}

body::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    /* 与公开前台一致的 #38251A 纯色遮罩 */
    background: rgba(56, 37, 26, 0.42);
}

main {
    width: 100%;
    max-width: 20rem;
    padding: 1.75rem;
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 255, 0.28);
    background:
        linear-gradient(
            135deg,
            rgba(255, 255, 255, 0.13),
            rgba(255, 255, 255, 0.03) 48%,
            rgba(255, 255, 255, 0.09)
        ),
        rgba(11, 23, 47, 0.62);
    box-shadow:
        0 18px 44px rgba(3, 9, 26, 0.38),
        inset 0 1px 0 rgba(255, 255, 255, 0.34);
    -webkit-backdrop-filter: blur(22px) saturate(180%);
    backdrop-filter: blur(22px) saturate(180%);
}

h1 {
    margin: 0 0 1.1rem;
    font-size: 1.15rem;
    letter-spacing: -0.01em;
}

input {
    box-sizing: border-box;
    width: 100%;
    margin: 0.35rem 0;
    padding: 0.55rem 0.75rem;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 9px;
    background: rgba(255, 255, 255, 0.1);
    color: var(--ink);
    font: inherit;
}

input::placeholder {
    color: var(--ink-3);
}

input:focus {
    outline: 2px solid rgba(159, 216, 247, 0.4);
    outline-offset: 1px;
    border-color: var(--accent);
}

button {
    box-sizing: border-box;
    width: 100%;
    margin-top: 1.1rem;
    padding: 0.65rem;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(150deg, #eef8ff, #a8dcf8);
    color: #0b1b33;
    font: inherit;
    font-weight: 600;
    text-shadow: none;
    cursor: pointer;
}

button:hover {
    background: linear-gradient(150deg, #ffffff, #c3e8fb);
}

.flash,
.alert {
    margin: 0 0 0.8rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 9px;
    background: rgba(255, 255, 255, 0.08);
    font-size: 0.9rem;
    color: var(--ink-2);
}

.alert {
    border-color: rgba(255, 150, 150, 0.45);
    background: rgba(120, 30, 30, 0.32);
    color: #ffd7d7;
}

.alert ul {
    margin: 0.2rem 0 0;
    padding-left: 1.1rem;
}

/* 不支持 backdrop-filter 时提高不透明度，保证表单可读 */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    main {
        background: rgba(14, 26, 50, 0.9);
    }
}
