/* ========================================================================
   全站浏览器兼容样式
   Chrome / Firefox / Safari / Edge 及移动端 WebKit
   ======================================================================== */

[hidden] {
    display: none !important;
}

html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

html,
body {
    min-height: 100%;
}

body {
    background-color: #f5f7fa;
    color: #333333;
}

html[data-theme="dark"] body {
    background-color: #14161a;
    color: #e6e8eb;
}

/* iOS 100vh 地址栏高度修正 */
@supports (-webkit-touch-callout: none) {
    .portal-shell,
    .portal-sidebar,
    .frontend-body,
    .portal-body,
    .admin-login-body,
    .install-wrap {
        min-height: -webkit-fill-available;
    }
}

/* 移动端输入框聚焦时不自动放大（iOS Safari） */
@media (max-width: 767px) {
    input,
    select,
    textarea,
    .form-control {
        font-size: 16px !important;
    }
}

a,
button,
label,
.btn,
.portal-nav-item,
.portal-foot-btn,
.theme-toggle {
    -webkit-tap-highlight-color: transparent;
}

button,
input[type="button"],
input[type="submit"],
input[type="reset"],
input[type="search"] {
    -webkit-appearance: none;
    appearance: none;
}

input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
    -webkit-appearance: none;
}

img,
svg,
video {
    max-width: 100%;
    height: auto;
}

/* Flex 子项文本溢出 */
.portal-main,
.portal-hero-left,
.portal-tool-body,
.portal-nav-label,
.admin-topbar-left {
    min-width: 0;
}

.portal-sidebar {
    position: -webkit-sticky;
    position: sticky;
}

.site-header {
    position: -webkit-sticky;
    position: sticky;
}

/* 不支持 backdrop-filter 时使用纯色背景 */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .site-header {
        background: #ffffff;
    }

    html[data-theme="dark"] .site-header {
        background: #14161a;
    }
}

/* 减少动画偏好 */
@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto !important;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* 刘海屏 / 底部安全区 */
.portal-sidebar-foot,
.portal-footer-bottom,
.install-footer {
    padding-bottom: max(14px, env(safe-area-inset-bottom, 0px));
}

.portal-body,
.install-wrap {
    padding-left: env(safe-area-inset-left, 0px);
    padding-right: env(safe-area-inset-right, 0px);
}

/* 旧版 Grid 降级为 Flex（极少数环境） */
@supports not (display: grid) {
    .portal-grid,
    .admin-stats-grid,
    .admin-info-grid,
    .sponsor-layout {
        display: flex;
        flex-wrap: wrap;
    }

    .portal-grid > .portal-tool-card,
    .portal-grid > a {
        flex: 1 1 220px;
        max-width: 100%;
    }
}

/* 打印优化 */
@media print {
    .portal-sidebar,
    .portal-sidebar-foot,
    .back-top,
    .theme-toggle,
    .admin-topbar-right,
    .install-steps {
        display: none !important;
    }

    .portal-shell {
        display: block;
    }

    .portal-main {
        width: 100%;
    }

    body {
        background: #fff !important;
        color: #000 !important;
    }
}
