/* APP分发平台 - Apple Design Style (兼容版) */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
    --bg: #f5f5f7;
    --card: rgba(255,255,255,0.82);
    --card-solid: #fff;
    --text: #1d1d1f;
    --text-secondary: #86868b;
    --text-tertiary: #aeaeb2;
    --blue: #0071e3;
    --blue-hover: #0077ed;
    --green: #34c759;
    --border: rgba(0,0,0,0.06);
    --radius: 20px;
    --radius-sm: 14px;
    --shadow: 0 2px 16px rgba(0,0,0,0.06);
    --shadow-lg: 0 8px 32px rgba(0,0,0,0.08);
}

html { height: 100%; }

body {
    font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text",
        "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;
    background: #f5f5f7;
    background: var(--bg);
    color: #1d1d1f;
    color: var(--text);
    line-height: 1.5;
    min-height: 100%;
    -webkit-text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}

/* 顶部渐变 */
.page-bg {
    position: fixed; top: 0; left: 0; right: 0;
    height: 380px; z-index: -1;
    background: -webkit-linear-gradient(top, #fbfbfd 0%, #f5f5f7 100%);
    background: linear-gradient(180deg, #fbfbfd 0%, #f5f5f7 100%);
}

.container {
    max-width: 400px; margin: 0 auto;
    padding: 60px 20px 40px;
    position: relative; z-index: 1;
}
.admin-container { max-width: 720px; padding-top: 40px; }

/* Hero Card - 毛玻璃卡片 + 降级 */
.hero-card {
    background: #fff;
    background: var(--card);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    backdrop-filter: blur(20px) saturate(180%);
    border-radius: 20px;
    border-radius: var(--radius);
    padding: 40px 24px 32px;
    text-align: center;
    box-shadow: 0 8px 32px rgba(0,0,0,0.08);
    box-shadow: var(--shadow-lg);
    border: 1px solid rgba(0,0,0,0.06);
    border: 1px solid var(--border);
    margin-bottom: 14px;
}
.hero-icon { margin-bottom: 20px; }
.hero-icon img {
    width: 100px; height: 100px; border-radius: 22.5px;
    -o-object-fit: cover; object-fit: cover;
    box-shadow: 0 4px 20px rgba(0,0,0,0.1);
    display: block; margin: 0 auto;
}
.hero-icon-placeholder {
    width: 100px; height: 100px; border-radius: 22.5px; margin: 0 auto;
    background: -webkit-linear-gradient(315deg, #42a1ec, #0070c9);
    background: linear-gradient(135deg, #42a1ec, #0070c9);
    color: #fff;
    display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex;
    -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center;
    -webkit-box-pack: center; -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center;
    font-size: 38px; font-weight: 600; letter-spacing: -1px;
    box-shadow: 0 4px 20px rgba(0,112,201,0.3);
}
.hero-name {
    font-size: 24px; font-weight: 700; letter-spacing: -0.5px;
    margin-bottom: 8px; color: #1d1d1f; color: var(--text);
}
.hero-version {
    display: inline-block; font-size: 13px;
    color: #86868b; color: var(--text-secondary);
    font-weight: 400;
}
.hero-desc {
    margin-top: 16px; font-size: 15px;
    color: #86868b; color: var(--text-secondary);
    line-height: 1.6; letter-spacing: -0.1px;
}

/* Action Card */
.action-card {
    background: #fff; background: var(--card);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    backdrop-filter: blur(20px) saturate(180%);
    border-radius: 20px; border-radius: var(--radius);
    padding: 20px;
    box-shadow: 0 2px 16px rgba(0,0,0,0.06); box-shadow: var(--shadow);
    border: 1px solid rgba(0,0,0,0.06); border: 1px solid var(--border);
    margin-bottom: 14px;
}

/* Guide Card - 图文教程 */
.guide-card {
    background: #fff; background: var(--card);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    backdrop-filter: blur(20px) saturate(180%);
    border-radius: 20px; border-radius: var(--radius);
    padding: 24px 20px;
    box-shadow: 0 2px 16px rgba(0,0,0,0.06); box-shadow: var(--shadow);
    border: 1px solid rgba(0,0,0,0.06); border: 1px solid var(--border);
    margin-bottom: 14px;
}
.guide-title {
    font-size: 15px; font-weight: 600;
    color: #1d1d1f; color: var(--text);
    margin-bottom: 18px; letter-spacing: -0.2px;
}
.guide-steps {
    display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex;
    -webkit-flex-direction: column; -ms-flex-direction: column; flex-direction: column;
}
.guide-step { text-align: center; margin-bottom: 18px; }
.guide-step:last-child { margin-bottom: 0; }
.guide-img {
    width: 100%; max-width: 280px; height: auto;
    border-radius: 12px; display: block; margin: 0 auto 10px;
}
.guide-caption {
    font-size: 13px; color: #86868b; color: var(--text-secondary);
    font-weight: 500; letter-spacing: -0.1px;
}

/* Download Buttons - 兼容 flexbox */
.dl-btn {
    display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex;
    -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center;
    padding: 14px 18px; border-radius: 14px; border-radius: var(--radius-sm);
    text-decoration: none; color: #fff;
    -webkit-transition: all 0.2s ease; transition: all 0.2s ease;
    margin-bottom: 10px; position: relative; overflow: hidden;
}
.dl-btn > * + * { margin-left: 14px; }
.dl-btn:last-child { margin-bottom: 0; }
.dl-btn:active {
    -webkit-transform: scale(0.98); transform: scale(0.98);
    opacity: 0.92;
}
.dl-btn-android { background: #1d1d1f; background: var(--text); }
.dl-btn-ios { background: #0071e3; background: var(--blue); }
.dl-btn-icon {
    width: 24px; height: 24px;
    -webkit-flex-shrink: 0; -ms-flex-negative: 0; flex-shrink: 0;
    opacity: 0.95;
}
.dl-btn-text {
    -webkit-box-flex: 1; -webkit-flex: 1; -ms-flex: 1; flex: 1;
    min-width: 0;
}
.dl-btn-label { display: block; font-size: 15px; font-weight: 600; letter-spacing: -0.2px; }
.dl-btn-meta { display: block; font-size: 12px; opacity: 0.7; margin-top: 1px; font-weight: 400; }

/* Install Tips */
.install-tips {
    margin-top: 18px; padding-top: 18px;
    border-top: 1px solid rgba(0,0,0,0.06);
    border-top: 1px solid var(--border);
}
.install-tips h3 {
    font-size: 13px; font-weight: 600;
    color: #1d1d1f; color: var(--text);
    margin-bottom: 14px; letter-spacing: -0.1px;
}
.tips-list {
    display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex;
    -webkit-flex-direction: column; -ms-flex-direction: column; flex-direction: column;
}
.tip-item {
    display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex;
    -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; align-items: flex-start;
    font-size: 13px; color: #86868b; color: var(--text-secondary);
    line-height: 1.5; margin-bottom: 12px;
}
.tip-item:last-child { margin-bottom: 0; }
.tip-item > * + * { margin-left: 12px; }
.tip-num {
    width: 22px; height: 22px; border-radius: 50%;
    -webkit-flex-shrink: 0; -ms-flex-negative: 0; flex-shrink: 0;
    background: #f5f5f7; background: var(--bg);
    color: #1d1d1f; color: var(--text);
    font-size: 12px; font-weight: 600;
    display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex;
    -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center;
    -webkit-box-pack: center; -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center;
}

/* Empty State */
.empty-state { text-align: center; padding: 36px 20px; }
.empty-icon { font-size: 44px; margin-bottom: 12px; }
.empty-state p { color: #86868b; color: var(--text-secondary); font-size: 15px; font-weight: 500; }
.empty-sub { font-size: 13px !important; font-weight: 400 !important; margin-top: 4px; }

/* Buttons - 胶囊按钮 */
.btn {
    display: inline-block; padding: 10px 20px; border-radius: 100px;
    font-size: 14px; font-weight: 400; text-decoration: none; text-align: center;
    border: none; cursor: pointer;
    -webkit-transition: all 0.2s; transition: all 0.2s;
    letter-spacing: -0.1px;
    -webkit-appearance: none; -moz-appearance: none; appearance: none;
}
.btn:hover { opacity: 0.88; }
.btn-primary { background: #0071e3; background: var(--blue); color: #fff; }
.btn-secondary { background: #f5f5f7; background: var(--bg); color: #0071e3; color: var(--blue); }
.btn-danger { background: #ff3b30; color: #fff; }
.btn-sm { padding: 6px 14px; font-size: 13px; }
.btn-block { width: 100%; }

/* Login */
.login-box {
    max-width: 340px; margin: 100px auto;
    background: #fff; background: var(--card-solid);
    border-radius: 20px; border-radius: var(--radius);
    padding: 40px 32px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.08); box-shadow: var(--shadow-lg);
    text-align: center;
    border: 1px solid rgba(0,0,0,0.06); border: 1px solid var(--border);
}
.login-box h1 { font-size: 24px; font-weight: 700; margin-bottom: 8px; letter-spacing: -0.5px; }
.login-back { margin-top: 20px; font-size: 14px; }
.login-back a { color: #0071e3; color: var(--blue); text-decoration: none; }
.login-back a:hover { text-decoration: underline; }

/* Forms */
.form-group { margin-bottom: 18px; }
.form-group label {
    display: block; font-size: 13px; font-weight: 500;
    margin-bottom: 6px; color: #1d1d1f; color: var(--text);
    letter-spacing: -0.1px;
}
.form-input {
    width: 100%; padding: 11px 14px;
    border: 1px solid #d2d2d7; border-radius: 12px;
    font-size: 15px; outline: none;
    -webkit-transition: all 0.2s; transition: all 0.2s;
    background: #fff; background: var(--card-solid);
    color: #1d1d1f; color: var(--text);
    font-family: inherit;
    -webkit-appearance: none; -moz-appearance: none; appearance: none;
}
.form-input:focus {
    border-color: #0071e3; border-color: var(--blue);
    box-shadow: 0 0 0 4px rgba(0,113,227,0.12);
}
textarea.form-input { resize: vertical; }
.form-input-file { font-size: 13px; color: #86868b; color: var(--text-secondary); }
.form-row {
    display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex;
}
.form-row > * + * { margin-left: 14px; }
.form-row .form-group {
    -webkit-box-flex: 1; -webkit-flex: 1; -ms-flex: 1; flex: 1;
    min-width: 0;
}
.form-actions {
    display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex;
    margin-top: 10px;
}
.form-actions > * + * { margin-left: 10px; }

/* Alert */
.alert {
    padding: 14px 18px; border-radius: 12px; margin-bottom: 18px;
    font-size: 14px; font-weight: 500;
}
.alert-success { background: #e8f8ed; color: #1a7a2e; }
.alert-error { background: #fef0f0; color: #d63031; }

/* Admin */
.admin-header {
    display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex;
    -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between;
    -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center;
    padding: 0 0 20px;
}
.admin-header h1 { font-size: 28px; font-weight: 700; letter-spacing: -0.5px; }
.admin-nav {
    display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex;
}
.admin-nav > * + * { margin-left: 20px; }
.admin-nav a { color: #0071e3; color: var(--blue); text-decoration: none; font-size: 14px; }
.admin-nav a:hover { text-decoration: underline; }
.admin-card {
    background: #fff; background: var(--card-solid);
    border-radius: 20px; border-radius: var(--radius);
    padding: 28px;
    box-shadow: 0 2px 16px rgba(0,0,0,0.06); box-shadow: var(--shadow);
    margin-bottom: 18px;
    border: 1px solid rgba(0,0,0,0.06); border: 1px solid var(--border);
}
.admin-card h2 {
    font-size: 17px; font-weight: 600; margin-bottom: 20px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(0,0,0,0.06); border-bottom: 1px solid var(--border);
    letter-spacing: -0.2px;
}

/* Status Grid */
.status-grid {
    display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex;
    -webkit-flex-direction: column; -ms-flex-direction: column; flex-direction: column;
}
.status-item {
    display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex;
    -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between;
    -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid rgba(0,0,0,0.06); border-bottom: 1px solid var(--border);
    font-size: 14px;
}
.status-item:last-child { border-bottom: none; }
.status-label { color: #86868b; color: var(--text-secondary); font-weight: 400; }
.status-value { font-weight: 500; text-align: right; word-break: break-all; }
.text-muted { color: #aeaeb2; color: var(--text-tertiary); }

/* Footer */
.footer {
    text-align: center; padding: 24px 0;
    color: #aeaeb2; color: var(--text-tertiary);
    font-size: 12px;
}

/* Responsive - 手机 */
@media (max-width: 480px) {
    .container { padding: 40px 16px 30px; }
    .hero-card { padding: 32px 20px 26px; }
    .hero-icon img, .hero-icon-placeholder { width: 84px; height: 84px; border-radius: 19px; }
    .hero-icon-placeholder { font-size: 32px; }
    .hero-name { font-size: 21px; }
    .form-row {
        -webkit-flex-direction: column; -ms-flex-direction: column; flex-direction: column;
    }
    .form-row > * + * { margin-left: 0; }
    .admin-header {
        -webkit-flex-direction: column; -ms-flex-direction: column; flex-direction: column;
        -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; align-items: flex-start;
    }
    .admin-header > * + * { margin-top: 10px; }
    .admin-header h1 { font-size: 24px; }
    .admin-card { padding: 20px; }
    .dl-btn { padding: 12px 16px; }
}

/* Responsive - 平板 */
@media (min-width: 481px) and (max-width: 768px) {
    .container { max-width: 480px; }
    .admin-container { max-width: 680px; padding-left: 24px; padding-right: 24px; }
}

/* Responsive - 桌面 */
@media (min-width: 769px) {
    .admin-container { max-width: 720px; }
}

/* 安全区域适配 (iPhone X+) */
@supports (padding-bottom: env(safe-area-inset-bottom)) {
    .container { padding-bottom: calc(40px + env(safe-area-inset-bottom)); }
    .footer { padding-bottom: calc(24px + env(safe-area-inset-bottom)); }
}

/* 暗色模式支持 */
@media (prefers-color-scheme: dark) {
    :root {
        --bg: #1c1c1e;
        --card: rgba(44,44,46,0.82);
        --card-solid: #2c2c2e;
        --text: #f5f5f7;
        --text-secondary: #98989d;
        --text-tertiary: #636366;
        --border: rgba(255,255,255,0.08);
        --shadow: 0 2px 16px rgba(0,0,0,0.2);
        --shadow-lg: 0 8px 32px rgba(0,0,0,0.3);
    }
    body { background: #1c1c1e; color: #f5f5f7; }
    .page-bg { background: linear-gradient(180deg, #2c2c2e 0%, #1c1c1e 100%); }
    .form-input { border-color: #48484a; background: #2c2c2e; color: #f5f5f7; }
    .form-input:focus { border-color: #0a84ff; box-shadow: 0 0 0 4px rgba(10,132,255,0.2); }
    .tip-num { background: #2c2c2e; }
    .alert-success { background: #1a3a2a; color: #30d158; }
    .alert-error { background: #3a1a1a; color: #ff453a; }
    .dl-btn-android { background: #f5f5f7; color: #1c1c1e; }
    .dl-btn-android .dl-btn-icon { color: #1c1c1e; }
    .hero-icon-placeholder { box-shadow: 0 4px 20px rgba(0,112,201,0.2); }
}
