*{margin:0;padding:0;box-sizing:border-box}
body{
    font-family:'Microsoft YaHei',sans-serif;
    background:linear-gradient(135deg,#0f0c29 0%,#302b63 40%,#24243e 100%);
    color:#f0e6d2;
    min-height:100vh;
    font-size:16px;
    overflow-x:hidden;
    user-select:none;
    -webkit-user-select:none;
    -webkit-touch-callout:none;
}
input,textarea{
    user-select:text;
    -webkit-user-select:text;
}

.page{display:none;width:100%;max-width:430px;margin:0 auto;min-height:100vh;position:relative}
.page.active{display:block;animation:fadeIn .3s ease}
.subpage{display:none;width:100%;min-height:100vh;padding-bottom:80px}
.subpage.active{display:block;animation:fadeIn .3s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

/* ========== 欢迎页 ========== */
.welcome-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 20px;min-height:100vh;background:linear-gradient(135deg,#0f0c29 0%,#302b63 40%,#24243e 100%)}
.bagua-plate{width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,#1a1a3a 0%,#0f0c29 100%);border:3px solid #ffd700;display:flex;align-items:center;justify-content:center;font-size:130px;color:#ffd700;text-shadow:0 0 30px rgba(255,215,0,.8);animation:slowRotate 20s linear infinite, breathe 3s ease-in-out infinite;box-shadow:0 0 30px rgba(255,215,0,.4), inset 0 0 30px rgba(255,215,0,.1);margin:20px 0 30px}
@keyframes slowRotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes breathe{0%,100%{box-shadow:0 0 30px rgba(255,215,0,.4), inset 0 0 30px rgba(255,215,0,.1)}50%{box-shadow:0 0 60px rgba(255,215,0,.8), inset 0 0 60px rgba(255,215,0,.3)}}
.brand-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.logo-text{font-size:28px;font-weight:bold;background:linear-gradient(135deg,#ffd700,#ff8c00);-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 0 20px rgba(255,215,0,.5)}
.brand-divider{color:#ffd700;font-size:24px;margin:0 5px}
.brand-name{font-size:26px;font-weight:bold;color:#ffd700;letter-spacing:2px;text-shadow:0 0 15px rgba(255,215,0,.5)}
.brand-slogan{color:#c0b8a8;font-size:14px;margin-bottom:25px;letter-spacing:1px}

/* ========== 登录 ========== */
.login-box{width:100%;max-width:350px;display:flex;flex-direction:column;gap:15px}
.login-input{width:100%;padding:14px;border-radius:12px;border:1px solid rgba(255,215,0,.3);background:#1a1a3a;color:#f0e6d2;font-size:15px;outline:none;transition:all .3s}
.login-input:focus{border-color:#ffd700;box-shadow:0 0 10px rgba(255,215,0,.3)}
.login-links{display:flex;justify-content:space-between;padding:0 5px}
.login-links span{color:#a89f91;font-size:13px;cursor:pointer}
.social-login{display:flex;justify-content:center;gap:30px;margin-top:10px}
.circle-btn{width:50px;height:50px;border-radius:50%;background:rgba(255,255,255,.1);border:1px solid rgba(255,215,0,.3);display:flex;align-items:center;justify-content:center;font-size:24px;cursor:pointer;transition:all .3s}
.circle-btn:hover{background:rgba(255,215,0,.2);box-shadow:0 0 20px rgba(255,215,0,.3)}
.agreement-text{margin-top:20px;color:#556677;font-size:12px;text-align:center;line-height:1.6}

/* ========== 按钮 ========== */
button{width:100%;padding:14px;border-radius:12px;border:none;background:linear-gradient(135deg,#ffd700,#ff8c00);color:#1a1a3a;font-size:16px;font-weight:bold;cursor:pointer;letter-spacing:2px;transition:all .3s;box-shadow:0 4px 15px rgba(255,140,0,.4)}
button:active{transform:scale(.97)}
button.secondary{background:linear-gradient(135deg,#4a90d9,#357abd);color:#fff;font-size:14px;letter-spacing:1px;box-shadow:0 4px 15px rgba(74,144,217,.3)}
button.version-btn{background:rgba(255,255,255,.05);border:1px solid #ffd700;color:#ffd700;font-size:14px;padding:12px;margin:2px;border-radius:8px;cursor:pointer;transition:all .3s}
button.version-btn:hover{background:rgba(255,215,0,.2)}

/* ========== 表单 ========== */
.form-group{margin-bottom:14px}
label{display:block;margin-bottom:6px;color:#d0c8b8;font-size:14px;letter-spacing:.5px}
select,input,textarea{width:100%;padding:12px;border-radius:12px;border:1px solid rgba(255,215,0,.2);background:#1a1a3a;color:#f0e6d2;font-size:15px;outline:none;transition:all .3s}
select:focus,input:focus,textarea:focus{border-color:#ffd700;box-shadow:0 0 10px rgba(255,215,0,.2)}

/* ========== 底部标签栏 ========== */
.bottom-tab-bar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:430px;background:rgba(12,12,35,.98);border-top:1px solid rgba(255,215,0,.25);display:flex;justify-content:space-around;align-items:center;padding:10px 0;z-index:100;box-shadow:0 -4px 20px rgba(0,0,0,.5)}
.bottom-tab-item{display:flex;flex-direction:column;align-items:center;gap:4px;color:#a89f91;font-size:12px;cursor:pointer;transition:all .3s;flex:1}
.bottom-tab-item span:first-child{font-size:22px}
.bottom-tab-item.active{color:#ffd700;text-shadow:0 0 10px rgba(255,215,0,.5)}

/* ========== 分类菜单 ========== */
.menu-item{
    display:flex;justify-content:space-between;align-items:center;
        margin:14px 0;padding:22px 18px;
    background:linear-gradient(135deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02));
    border:1px solid rgba(255,215,0,.25);border-radius:14px;
    color:#d0c8b8;cursor:pointer;transition:all .3s ease;
}
.menu-item span:first-child{font-size:18px;font-weight:bold;color:#ffd700;letter-spacing:2px;text-shadow:0 0 8px rgba(255,215,0,.3)}
.menu-item span:last-child{font-size:22px;color:#ffd700;opacity:.8}
.menu-item:hover{background:linear-gradient(135deg, rgba(255,215,0,.15), rgba(255,215,0,.05));border-color:#ffd700;box-shadow:0 0 15px rgba(255,215,0,.2);transform:translateY(-2px)}

/* ========== 功能宫格 ========== */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:10px 0}
.grid-item{padding:15px 8px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);text-align:center;color:#d0c8b8;cursor:pointer;font-size:13px;transition:all .3s}
.grid-item:hover{background:rgba(255,215,0,.08);border-color:#ffd700;color:#ffd700}

/* ========== 版本选择器 ========== */
.version-selector{display:flex;gap:10px;margin-top:15px}
.version-selector button{flex:1;padding:12px;border-radius:10px;border:1px solid #ffd700;background:rgba(255,215,0,.1);color:#ffd700;cursor:pointer;font-size:14px;text-align:center}

/* ========== 加载 ========== */
.loading-text{text-align:center;color:#ffd700;padding:20px;font-size:16px;font-weight:bold;letter-spacing:2px}
#modalContent button{margin:8px 0}

/* ========== 福利页 ========== */
.welfare-header{text-align:center;margin:25px 15px 20px}
.welfare-header h2{color:#ffd700;font-size:22px;letter-spacing:2px;text-shadow:0 0 10px rgba(255,215,0,.5)}
.welfare-intro{color:#c0b8a8;font-size:14px;line-height:1.8;margin:10px 0}
.welfare-date{color:#ffd700;font-size:15px;font-weight:bold;margin-top:5px}
.welfare-item{background:rgba(255,255,255,.03);border:1px solid rgba(255,215,0,.2);border-radius:12px;margin:12px 15px;overflow:hidden;transition:all .3s}
.welfare-item-header{display:flex;justify-content:space-between;align-items:center;padding:15px;cursor:pointer;color:#ffd700;font-size:16px;font-weight:bold;letter-spacing:1px}
.welfare-item-header .arrow{font-size:20px;transition:transform .3s}
.welfare-item-header.open .arrow{transform:rotate(180deg)}
.welfare-item-content{display:none;padding:0 15px 15px;color:#d0d8e0;line-height:2;font-size:15px;white-space:pre-wrap}
.welfare-item-content.show{display:block;animation:fadeIn .3s ease}
.welfare-updating{color:#ffd700;font-size:15px;font-weight:bold;margin:10px 0;letter-spacing:1px}
.loading-dots::after{content:'';animation:dotting 1.2s infinite steps(4)}
@keyframes dotting{0%{content:''}25%{content:'.'}50%{content:'..'}75%{content:'...'}100%{content:''}}

/* ========== 公告栏 ========== */
.announcement-header{text-align:center;margin:20px 15px}
.announcement-header h2{color:#ffd700;font-size:22px;letter-spacing:2px;text-shadow:0 0 10px rgba(255,215,0,.5)}
.announcement-item{background:rgba(255,255,255,.03);border:1px solid rgba(255,215,0,.2);border-radius:12px;margin:10px 15px;padding:15px;cursor:pointer;transition:all .3s}
.announcement-item:hover{background:rgba(255,215,0,.08);border-color:#ffd700}
.announcement-item-top{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.announcement-tag{background:rgba(255,215,0,.15);color:#ffd700;font-size:12px;padding:2px 8px;border-radius:4px;border:1px solid rgba(255,215,0,.3)}
.announcement-title{color:#ffd700;font-size:16px;font-weight:bold;letter-spacing:1px}
.announcement-summary{color:#c0b8a8;font-size:14px;line-height:1.6}
.announcement-date{color:#556677;font-size:12px;margin-top:5px;text-align:right}

/* ========== VIP页 ========== */
.vip-header{text-align:center;margin:25px 15px 15px}
.vip-crown{font-size:50px;display:block;margin-bottom:10px;text-shadow:0 0 20px rgba(255,215,0,.8)}
.vip-title{color:#ffd700;font-size:24px;font-weight:bold;letter-spacing:3px}
.vip-subtitle{color:#c0b8a8;font-size:14px;margin-top:5px}
.vip-privileges{background:rgba(255,255,255,.03);border:1px solid rgba(255,215,0,.2);border-radius:12px;margin:15px;padding:15px}
.vip-privilege-item{color:#d0d8e0;font-size:15px;line-height:2;letter-spacing:1px}
.vip-plans{margin:15px}
.vip-plan-card{background:rgba(255,255,255,.03);border:1px solid rgba(255,215,0,.2);border-radius:12px;padding:15px;margin-bottom:12px;cursor:pointer;transition:all .3s}
.vip-plan-card.selected{border-color:#ffd700;background:rgba(255,215,0,.08);box-shadow:0 0 15px rgba(255,215,0,.2)}
.vip-plan-name{color:#ffd700;font-size:17px;font-weight:bold;letter-spacing:1px}
.vip-plan-price{color:#ffd700;font-size:20px;font-weight:bold;margin-top:5px}
.vip-plan-desc{color:#c0b8a8;font-size:13px;margin-top:5px}
.vip-pay-methods{margin:15px;display:flex;gap:20px}
.vip-pay-method{display:flex;align-items:center;gap:6px;color:#d0d8e0;font-size:15px;cursor:pointer}
.vip-pay-method input{accent-color:#ffd700}
.vip-amount{text-align:center;color:#ffd700;font-size:18px;font-weight:bold;margin:10px 0}
.vip-member-info{background:rgba(255,215,0,.08);border:1px solid #ffd700;border-radius:12px;margin:15px;padding:15px;color:#ffd700;text-align:center}
.vip-member-info p{line-height:2;font-size:15px}

/* ========== 个人页头部（头像靠左 + 中间VIP/ID + 右侧在线客服） ========== */
/* 兼容：即使 VIP/ID 被 .profile-name-row 包裹也能正确定位 */
.profile-name-row{display:contents}

.profile-header-new{
    display:grid;
    grid-template-columns:auto 1fr auto;
    grid-template-rows:auto auto;
    grid-template-areas:
        "avatar vip service"
        "name   id  service";
    align-items:center;
    justify-items:start;
    column-gap:14px;
    row-gap:4px;
    padding:20px 16px;
    margin:15px;
    text-align:left;
}

/* 左侧：头像 */
.profile-avatar-new{
    grid-area:avatar;
    justify-self:center;
    font-size:36px;
    width:52px;
    height:52px;
    line-height:52px;
    text-align:center;
    border-radius:50%;
    background:linear-gradient(135deg, rgba(255,215,0,.15), rgba(255,215,0,.05));
    border:2px solid rgba(255,215,0,.35);
    filter:drop-shadow(0 0 10px rgba(255,215,0,.4));
}

/* 左侧：用户名（头像下方） */
.profile-name-new{
    grid-area:name;
    justify-self:center;
    margin-top:32px;              /* ★ 姓名下移两行 */
    font-size:15px;
    font-weight:bold;
    color:#ffd700;
    letter-spacing:1px;
    text-shadow:0 0 8px rgba(255,215,0,.4);
    white-space:nowrap;
}

/* 中间：VIP 皇冠 + VIP 文字 */
.vip-badge-icon{
    grid-area:vip;
    justify-self:center;          /* ★ VIP 居中 */
    display:flex;
    align-items:center;
    gap:5px;
    font-size:18px;
    filter:drop-shadow(0 0 8px rgba(255,215,0,.8));
    animation:vipGlow 2s ease-in-out infinite;
}
.vip-badge-icon::after{
    content:"VIP";
    font-size:15px;
    font-weight:bold;
    color:#ffd700;
    letter-spacing:1px;
    text-shadow:0 0 8px rgba(255,215,0,.5);
}

/* 中间：用户ID（VIP 下方） */
.profile-id-new{
    grid-area:id;
    justify-self:center;          /* ★ ID 居中 */
    font-size:12px;
    color:#a89f91;
    letter-spacing:1px;
}

/* 右侧：在线客服 */
.profile-service-new{
    grid-area:service;
    justify-self:end;
    align-self:center;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:4px;
    padding:8px 12px;
    border-radius:12px;
    background:linear-gradient(135deg, rgba(255,215,0,.12), rgba(255,215,0,.04));
    border:1px solid rgba(255,215,0,.35);
    cursor:pointer;
    transition:all .3s;
    white-space:nowrap;
    user-select:none;
}
.profile-service-new:hover{
    background:linear-gradient(135deg, rgba(255,215,0,.22), rgba(255,215,0,.08));
    border-color:#ffd700;
    box-shadow:0 0 15px rgba(255,215,0,.3);
    transform:translateY(-1px);
}
.profile-service-new:active{transform:scale(.97)}
.profile-service-new .service-icon{
    font-size:22px;
    line-height:1;
    filter:drop-shadow(0 0 6px rgba(255,215,0,.7));
}
.profile-service-new .service-text{
    font-size:12px;
    font-weight:bold;
    color:#ffd700;
    letter-spacing:1px;
    text-shadow:0 0 6px rgba(255,215,0,.4);
}
@keyframes vipGlow{
    0%,100%{filter:drop-shadow(0 0 6px rgba(255,215,0,.6))}
    50%{filter:drop-shadow(0 0 14px rgba(255,215,0,1))}
}

/* ========== 个人页余额卡片 ========== */
.profile-balance-card{
    background:linear-gradient(135deg, rgba(255,215,0,.12), rgba(255,215,0,.04));
    border:1px solid rgba(255,215,0,.35);
    border-radius:16px;
    padding:18px 15px;
    margin:15px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    cursor:pointer;
    box-shadow:0 0 20px rgba(255,215,0,.08);
}
.balance-label{color:#d0c8b8;font-size:15px;letter-spacing:1px}
.balance-value{color:#ffd700;font-size:26px;font-weight:bold;text-shadow:0 0 10px rgba(255,215,0,.5)}
.balance-action{color:#ffd700;font-size:16px;font-weight:bold}

/* ========== 个人页菜单 ========== */
.profile-menu{margin:15px}
.profile-menu-item{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:16px 15px;
    background:linear-gradient(135deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
    border:1px solid rgba(255,215,0,.18);
    border-radius:14px;
    margin:10px 0;
    color:#f0e6d2;
    font-size:16px;
    letter-spacing:1px;
    cursor:pointer;
    transition:all .3s;
}
.profile-menu-item:hover{
    background:linear-gradient(135deg, rgba(255,215,0,.15), rgba(255,215,0,.05));
    border-color:#ffd700;
    box-shadow:0 0 15px rgba(255,215,0,.15);
    transform:translateY(-1px);
}
/* ========== 设置页菜单 ========== */
.settings-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 18px;
    margin-bottom: 8px;
    border-radius: 12px;
    background: rgba(255, 215, 0, .04);
    border: 1px solid rgba(255, 215, 0, .15);
    color: #d0d8e0;
    font-size: 15px;
    cursor: pointer;
    transition: all .2s;
}
.settings-item:active {
    background: rgba(255, 215, 0, .1);
    transform: scale(0.98);
}

.menu-arrow{color:#ffd700;font-size:20px;opacity:.9}

/* ========== 知识库页面 ========== */
.knowledge-header{text-align:center;margin:30px 15px 20px}
.knowledge-header h2{color:#ffd700;font-size:24px;letter-spacing:3px;margin-bottom:10px;text-shadow:0 0 12px rgba(255,215,0,.5)}
.knowledge-intro{color:#c0b8a8;font-size:13px;letter-spacing:1px;line-height:1.8}
.knowledge-group{background:rgba(255,255,255,.03);border:1px solid rgba(255,215,0,.15);border-radius:14px;margin:12px 15px;padding:18px 16px}
.knowledge-group-title{color:#ffd700;font-size:16px;font-weight:bold;letter-spacing:2px;margin-bottom:14px;padding-left:8px;border-left:3px solid #ffd700}
.knowledge-tag-cloud{display:flex;flex-wrap:wrap;gap:8px}
.knowledge-tag{padding:6px 14px;background:rgba(255,215,0,.06);border:1px solid rgba(255,215,0,.2);border-radius:20px;color:#d0c8b8;font-size:13px;cursor:pointer;transition:all .3s;letter-spacing:0.5px}
.knowledge-tag:hover{background:rgba(255,215,0,.15);border-color:#ffd700;color:#ffd700;transform:translateY(-2px);box-shadow:0 4px 12px rgba(255,215,0,.2)}

/* ========== 报告页 ========== */
.report-header{text-align:center;margin:25px 15px 15px}
.report-header h2{color:#ffd700;font-size:22px;letter-spacing:2px;text-shadow:0 0 10px rgba(255,215,0,.5)}
.report-tip{color:#a89f91;font-size:13px;margin-top:8px}

.report-card{
    background:linear-gradient(135deg, rgba(255,255,255,0.05), rgba(255,255,255,0.02));
    border:1px solid rgba(255,215,0,.25);
    border-radius:14px;
    margin:12px 15px;
    padding:15px;
    transition:all .3s;
    cursor:pointer;
    user-select:none;
}
.report-card:hover{border-color:#ffd700;box-shadow:0 0 15px rgba(255,215,0,.15)}
.report-card.expanded{border-color:#ffd700;box-shadow:0 0 15px rgba(255,215,0,.2)}
.report-card.collapsed{padding-bottom:12px}

.report-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.report-version{color:#ffd700;font-size:16px;font-weight:bold;letter-spacing:1px}
.report-status{font-size:13px;padding:3px 10px;border-radius:10px}
.report-status.pending{color:#ff9800;background:rgba(255,152,0,0.15)}
.report-status.done{color:#4caf50;background:rgba(76,175,80,0.15)}
.report-status.failed{color:#f44336;background:rgba(244,67,54,0.15)}
.report-card-time{color:#556677;font-size:12px;margin-bottom:10px}
.report-loading{color:#ffd700;font-size:14px;padding:15px 0;text-align:center;letter-spacing:1px}
.report-failed{color:#f44336;font-size:14px;padding:15px 0;text-align:center}
.report-content{
    color:#d0d8e0;
    font-size:15px;
    line-height:2;
    padding-top:10px;
    border-top:1px solid rgba(255,215,0,.15);
    max-height:600px;
    overflow-y:auto;
    white-space:pre-wrap;
    word-break:break-word;
}
.report-content::-webkit-scrollbar{width:6px}
.report-content::-webkit-scrollbar-thumb{background:rgba(255,215,0,.3);border-radius:3px}

/* ========== 报告语音播报按钮 ========== */
.report-actions{
    display:flex;
    justify-content:flex-end;
    gap:8px;
    margin-bottom:12px;
    padding-bottom:10px;
    border-bottom:1px dashed rgba(255,215,0,.15);
}
.speech-btn{
    padding:6px 14px;
    border-radius:20px;
    border:1px solid rgba(255,215,0,.4);
    background:rgba(255,215,0,.08);
    color:#ffd700;
    font-size:13px;
    cursor:pointer;
    transition:all .3s;
    letter-spacing:0.5px;
    width:auto;
    box-shadow:none;
    font-weight:500;
}
.speech-btn:hover{background:rgba(255,215,0,.2);box-shadow:0 0 10px rgba(255,215,0,.3);transform:none}
.speech-btn.speech-stop{border-color:rgba(255,100,100,.4);background:rgba(255,100,100,.08);color:#ff8888}
.speech-btn.speech-stop:hover{background:rgba(255,100,100,.2);box-shadow:0 0 10px rgba(255,100,100,.3)}
/* ===== 公告详情（精心排版） ===== */
.announce-detail {
    padding: 8px 4px 4px;
}

.announce-detail-header {
    text-align: center;
    padding-bottom: 20px;
}

.announce-detail-badge {
    display: inline-block;
    font-size: 12px;
    font-weight: bold;
    padding: 4px 14px;
    border-radius: 20px;
    letter-spacing: 2px;
    margin-bottom: 16px;
    background: rgba(255,215,0,.12);
    color: #ffd700;
    border: 1px solid rgba(255,215,0,.3);
}
.announce-detail-badge.type-置顶 {
    background: linear-gradient(135deg, #ffd700, #f5a623);
    color: #1a1a3a;
    border-color: transparent;
}
.announce-detail-badge.type-更新 {
    background: rgba(76,175,80,.15); color: #4caf50;
    border-color: rgba(76,175,80,.3);
}
.announce-detail-badge.type-教程 {
    background: rgba(102,217,232,.15); color: #66d9e8;
    border-color: rgba(102,217,232,.3);
}
.announce-detail-badge.type-活动 {
    background: rgba(171,71,188,.15); color: #ab47bc;
    border-color: rgba(171,71,188,.3);
}
.announce-detail-badge.type-公告 {
    background: rgba(138,155,168,.15); color: #8a9ba8;
    border-color: rgba(138,155,168,.3);
}

.announce-detail-title {
    color: #ffd700;
    font-size: 22px;
    font-weight: bold;
    letter-spacing: 2px;
    line-height: 1.5;
    margin-bottom: 14px;
    padding: 0 10px;
    text-shadow: 0 0 20px rgba(255,215,0,.3);
}

.announce-detail-meta {
    color: #8a9ba8;
    font-size: 13px;
    letter-spacing: 1px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.announce-detail-meta .meta-dot {
    opacity: .4;
}

.announce-detail-divider {
    display: flex;
    justify-content: center;
    gap: 16px;
    margin: 20px 0 24px;
    color: rgba(255,215,0,.4);
    font-size: 12px;
    position: relative;
}
.announce-detail-divider::before,
.announce-detail-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255,215,0,.2), transparent);
    align-self: center;
}

.announce-detail-body {
    color: #d0d8e0;
    font-size: 15px;
    line-height: 2.2;
    letter-spacing: 0.5px;
    padding: 0 6px;
    word-break: break-word;
    position: relative;
    padding-left: 20px;
}
.announce-detail-body::before {
    content: '';
    position: absolute;
    left: 4px;
    top: 8px;
    bottom: 8px;
    width: 2px;
    background: linear-gradient(180deg, rgba(255,215,0,.4), rgba(255,215,0,.05));
    border-radius: 2px;
}

.announce-detail-footer {
    text-align: center;
    color: #556677;
    font-size: 12px;
    letter-spacing: 3px;
    margin-top: 30px;
    padding-top: 16px;
    border-top: 1px solid rgba(255,215,0,.1);
}

@media (max-width: 480px) {
    .announce-detail-title { font-size: 19px; }
    .announce-detail-body { font-size: 14px; line-height: 2; padding-left: 16px; }
    .announce-detail-body::before { left: 2px; }
}
/* ============================================================
   可访问性基础样式
   ============================================================ */

/* 1. 按钮默认样式重置 —— 让 <button> 看起来和原来的 <div> 一样 */
button.a11y-reset,
.a11y-reset {
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    font: inherit;
    color: inherit;
    cursor: pointer;
    text-align: inherit;
    line-height: inherit;
    -webkit-appearance: none;
    appearance: none;
}

/* 2. 键盘聚焦时显示明显的焦点框（仅键盘触发时显示，鼠标点击不显示） */
button:focus-visible,
[role="button"]:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 2px solid #ffd700;
    outline-offset: 2px;
    border-radius: 4px;
}

/* 3. 屏幕阅读器专用文本（视觉上隐藏，读屏软件可读） */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* 4. 颜色对比度提升（原色对比度不足，替换为更亮的色值） */
/* #556677 → #8a9ba8（对比度从约 3:1 提升至约 5:1） */
/* #6a7a88 → #8a9ba8 */
/* 若某处需要保留视觉层级，可用 #7a8a98 */
.a11y-text-muted { color: #8a9ba8 !important; }
/* ========== 引擎判式层通用样式 ========== */
.engine-block{margin:15px 0;padding:12px 14px;border-radius:10px;background:rgba(255,255,255,.03);border:1px solid rgba(255,215,0,.15)}
.engine-block-title{color:#ffd700;font-weight:bold;margin-bottom:10px;letter-spacing:2px;font-size:14px}
.engine-block-title .collapse{float:right;cursor:pointer;font-size:12px;color:#8a9ba8}
.engine-block-body{color:#d0d8e0;font-size:13px;line-height:1.9}
.engine-kv{display:flex;gap:8px;padding:3px 0;border-bottom:1px dashed rgba(255,215,0,.06)}
.engine-kv:last-child{border-bottom:none}
.engine-kv .k{color:#a89f91;min-width:80px;flex-shrink:0}
.engine-kv .v{color:#d0d8e0;flex:1;word-break:break-word}

/* 时间校正 */
.time-corr-block{margin:12px 0;padding:10px 12px;border-radius:10px;background:rgba(74,144,217,.08);border:1px solid rgba(74,144,217,.35);font-size:12px;line-height:1.8}
.time-corr-title{color:#4a90d9;font-weight:bold;margin-bottom:6px;letter-spacing:1px}

/* 出处/注记折叠 */
.source-block{margin:12px 0;padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.02);border:1px solid rgba(255,215,0,.12);font-size:12px;line-height:1.8}
.source-block-title{color:#a89f91;font-weight:bold;cursor:pointer;user-select:none;letter-spacing:1px}
.source-block-body{display:none;margin-top:8px;color:#8a9ba8}
.source-block-body.show{display:block}
.source-block-body li{margin:4px 0;padding-left:14px;position:relative}
.source-block-body li::before{content:'·';position:absolute;left:4px;color:#ffd700}

/* 判文纪律 */
.verdict-red{display:block;padding:8px 12px;margin:6px 0;border-radius:8px;background:rgba(244,67,54,.1);border-left:3px solid #f44336;color:#ff6b6b;font-size:13px;line-height:1.7}
.verdict-estimated{color:#8a9ba8;font-size:12px}
.verdict-pending{color:#ff9800;font-size:12px}
.badge-estimated,.badge-verified{display:inline-block;font-size:10px;padding:1px 6px;border-radius:8px;margin-left:4px;vertical-align:middle}
.badge-estimated{background:rgba(138,155,168,.2);color:#8a9ba8}
.badge-verified{background:rgba(76,175,80,.15);color:#4caf50}

/* 判式条目 */
.judge-item{margin:8px 0;padding:8px 10px;border-radius:8px;background:rgba(255,215,0,.04);border-left:2px solid rgba(255,215,0,.4)}
.judge-item-title{color:#ffd700;font-size:13px;font-weight:bold;margin-bottom:4px}
.judge-item-body{color:#d0d8e0;font-size:12px;line-height:1.8}

/* 四柱/大运表格横向滚动条美化 */
.engine-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.engine-scroll::-webkit-scrollbar{height:4px}
.engine-scroll::-webkit-scrollbar-thumb{background:rgba(255,215,0,.3);border-radius:2px}