/* ===== 用户页面 ===== */
.user-page{max-width:720px;margin:0 auto;padding:20px 16px 40px;display:flex;flex-direction:column;gap:12px}

/* ===== 通用卡片 ===== */
.ucard{background:#fff;border-radius:14px;padding:20px;box-shadow:0 1px 6px rgba(0,0,0,.04);border:1px solid #edf0f5;transition:box-shadow .2s}
.ucard-title{font-size:12px;font-weight:600;color:#b0b8c4;text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}

/* ===== 头部卡片 ===== */
.ucard-hero{display:flex;align-items:center;gap:18px;padding:24px}
.u-avatar{flex-shrink:0}
.u-avatar-inner{width:68px;height:68px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:32px;box-shadow:0 4px 14px rgba(102,126,234,.3)}
.u-hero-info{flex:1;min-width:0}
.u-name{font-size:20px;font-weight:700;color:#1a1a2e;margin:0 0 2px;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.u-badge{display:inline-block;font-size:10px;font-weight:700;padding:2px 7px;border-radius:5px;line-height:1.4;vertical-align:middle}
.u-badge-ult{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}
.u-badge-token{background:linear-gradient(135deg,#f6d365,#fda085);color:#5a3e00}
.u-badge-vip{background:linear-gradient(135deg,#f6d365,#fda085);color:#5a3e00}
.u-badge-svip{background:linear-gradient(135deg,#a18cd1,#fbc2eb);color:#3a1a5e}
.u-meta{font-size:12px;color:#8e98a5;margin:0 0 4px}
.u-bio{font-size:13px;color:#5a6270;margin:0;line-height:1.4}
.u-hero-action{flex-shrink:0}
.u-chk-btn{display:inline-block;padding:8px 18px;border:none;border-radius:9px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}
.u-chk-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(102,126,234,.3)}
.u-chk-done{display:inline-block;padding:8px 16px;border-radius:9px;background:#e8f8e8;color:#1a8a3e;font-size:13px;font-weight:600;white-space:nowrap}

/* ===== 双栏 ===== */
.u-row{display:flex;gap:12px}
.u-card-xp{flex:1;text-align:center}
.u-card-vip{flex:1.2;text-align:center}
.u-level{font-size:32px;font-weight:800;color:#1a1a2e;margin-bottom:10px;line-height:1}
.xp-bar-wrap{height:6px;background:#eef0f4;border-radius:4px;overflow:hidden;margin-bottom:6px;max-width:200px;margin-left:auto;margin-right:auto}
.xp-bar-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:4px;transition:width .5s}
.xp-nums{font-size:11px;color:#8e98a5}
.u-mem-badges{display:flex;gap:6px;justify-content:center;margin-bottom:10px;flex-wrap:wrap}
.u-mb{display:inline-block;font-size:11px;font-weight:700;padding:3px 10px;border-radius:6px;border:1.5px solid #e0e4ea;color:#b0b8c4;background:#f8f9fb;transition:all .2s}
.u-mb.on-ult{border-color:#667eea;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}
.u-mb.on-token{border-color:#f6d365;background:linear-gradient(135deg,#f6d365,#fda085);color:#5a3e00}
.u-mb.on-svip{border-color:#a18cd1;background:linear-gradient(135deg,#a18cd1,#fbc2eb);color:#3a1a5e}
.u-mb.on-vip{border-color:#f6d365;background:linear-gradient(135deg,#f6d365,#fda085);color:#5a3e00}
.u-mb.off{opacity:.5}
.u-mem-days{font-size:11px;color:#8e98a5;line-height:1.4}
.u-mem-days strong{color:#5a6270}

/* ===== 签到预览 ===== */
.u-card-sign{text-align:center;padding:10px 20px}
.u-sign-formula{font-size:12px;color:#8e98a5;font-family:'Courier New',monospace}

/* ===== 信息网格 ===== */
.u-card-info{padding:16px 20px}
.u-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.u-info-item{display:flex;align-items:center;padding:8px 12px;border-radius:8px;transition:background .15s}
.u-info-item:hover{background:#f8f9fb}
.u-il{font-size:12px;color:#8e98a5;width:56px;flex-shrink:0}
.u-iv{font-size:13px;color:#2d3436}
.u-coin{font-weight:600;color:#f39c12}
.edit-link{font-size:11px;color:#667eea;cursor:pointer;margin-left:5px;opacity:.6;transition:opacity .2s}
.edit-link:hover{opacity:1}
.u-logout-wrap{text-align:center;padding:8px 0}
.u-logout{font-size:12px;color:#b0b8c4;cursor:pointer;transition:color .2s}
.u-logout:hover{color:#e74c3c}

/* ===== 军衔徽章 ===== */
.u-rank-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:7px;line-height:1;vertical-align:middle;white-space:nowrap;min-height:28px}
/* 纵向排列区 */
.ri-col{display:flex;flex-direction:column;align-items:center;gap:1.5px}
/* 杠 - 渐变金色/银色 */
.ri-bar{display:block;width:18px;height:3px;border-radius:1.5px}
.ri-bar.ri-s{background:linear-gradient(90deg,#b0bec5,#eceff1,#b0bec5)}
.ri-bar.ri-g{background:linear-gradient(90deg,#f0c040,#ffd54f,#f0c040)}
/* 星 */
.ri-sstar{font-size:9px;color:#f0c040;line-height:1}
/* 金色小clip-path星 */
.ri-gs{display:inline-block;width:9px;height:9px;background:#f0c040;clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);vertical-align:middle}
.ri-gr{display:flex;gap:1.5px}
/* chevron */
.ri-cv{font-size:10px;color:#8b949e;line-height:1}
/* 背景颜色 - 统一军绿色 */
.u-rank-badge{background:#2d5a2d;border:1px solid #4a7a4a}
.u-rank-badge.r-supreme,.u-rank-badge.r-eternal,.u-rank-badge.r-primeval{color:#f0c040}
.u-rank-badge.r-infinite{color:#bb86fc;border-color:#9b59b6}

/* 军衔对照表弹窗 */
#rankTableBody table{background:transparent}
#rankTableBody td{font-family:'Segoe UI','PingFang SC',sans-serif}
#rankTableBody tr{transition:background .15s}
#rankTableBody tr:hover{background:rgba(255,255,255,.04)}


/* ===== 称号弹窗（保留） ===== */
.title-select-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ts-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 8px;border-radius:10px;cursor:pointer;transition:all .15s;border:1.5px solid #eef0f4;background:#fafbfc}
.ts-item.owned:hover{border-color:#667eea;background:#f0f2ff}
.ts-item.locked{opacity:.4;cursor:default}
.ts-item.equipped{border-color:#667eea;background:#f0f2ff}
.ts-icon{font-size:26px;line-height:1}
.ts-name{font-size:12px;font-weight:600;color:#2d3436}
.ts-desc{font-size:10px;color:#8e98a5}
.ts-eq-badge{font-size:10px;color:#667eea;font-weight:600}

/* ===== 响应式 ===== */
@media(max-width:640px){
  .ucard-hero{flex-direction:column;text-align:center;padding:20px}
  .u-hero-action{margin-top:4px}
  .u-row{flex-direction:column}
  .u-info-grid{grid-template-columns:1fr}
  .title-select-grid{grid-template-columns:1fr}
}

/* ===== 登录/注册弹窗 ===== */
.user-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.45);z-index:10000;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:all .3s}
.user-overlay.show{opacity:1;visibility:visible}
.user-modal{background:#fff;border-radius:16px;width:380px;max-width:90vw;padding:32px;box-shadow:0 20px 60px rgba(0,0,0,.15);position:relative;transform:translateY(20px);transition:transform .3s}
.user-overlay.show .user-modal{transform:translateY(0)}
.user-close{position:absolute;top:14px;right:18px;font-size:20px;color:#b2bec3;cursor:pointer;border:none;background:none;padding:4px;line-height:1;transition:color .2s}
.user-close:hover{color:#636e72}
.user-modal h2{font-size:20px;color:#2d3436;margin:0 0 4px;text-align:center;font-weight:700}
.user-modal .user-tip{font-size:13px;color:#b2bec3;text-align:center;margin-bottom:24px}
.user-field{margin-bottom:16px}
.user-field label{display:block;font-size:13px;color:#636e72;margin-bottom:6px;font-weight:500}
.user-field input{width:100%;padding:10px 14px;border:1.5px solid #eaecef;border-radius:10px;font-size:14px;outline:none;transition:all .2s;box-sizing:border-box;background:#f8f9fa}
.user-field input:focus{border-color:#0984e3;box-shadow:0 0 0 3px rgba(9,132,227,.12);background:#fff}
.user-btn{width:100%;padding:12px;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;margin-top:4px;letter-spacing:.5px}
.user-btn.primary{background:#0984e3;color:#fff}
.user-btn.primary:hover{background:#0773c5;transform:translateY(-1px);box-shadow:0 4px 12px rgba(9,132,227,.25)}
.user-btn.secondary{background:#f0f0f0;color:#636e72}
.user-btn.secondary:hover{background:#e0e0e0}
.user-switch{text-align:center;margin-top:16px;font-size:13px;color:#b2bec3}
.user-switch a{color:#0984e3;cursor:pointer;text-decoration:none;font-weight:500}
.user-switch a:hover{text-decoration:underline}
.user-error{background:#fff0f0;color:#c9302c;font-size:12px;padding:8px 12px;border-radius:8px;margin-bottom:12px;display:none}
.user-error.show{display:block}
.user-success{background:#f0fff4;color:#2d8a4e;font-size:12px;padding:8px 12px;border-radius:8px;margin-bottom:12px;display:none}
.user-success.show{display:block}

/* 验证码 */
.captcha-row{display:flex;gap:8px;align-items:center}
.captcha-row input{flex:1}
.captcha-box{padding:8px 14px;background:#f5f3ef;border:1.5px solid #eaecef;border-radius:10px;font-size:16px;font-weight:bold;color:#c9302c;letter-spacing:3px;cursor:pointer;user-select:none;white-space:nowrap}
.captcha-box:hover{border-color:#d5d0c5}

/* ===== 个人中心页面 ===== */
.user-page{max-width:720px;margin:0 auto;padding:0 0 30px}

.profile-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.06);font-size:14px;color:#2d3436}
.profile-header{display:flex;align-items:center;gap:16px;padding:24px 24px 16px}
.profile-avatar{width:52px;height:52px;border-radius:12px;background:linear-gradient(135deg,#0984e3,#6c5ce7);color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0;box-shadow:0 4px 10px rgba(9,132,227,.2)}
.profile-title{flex:1}
.profile-title h2{margin:0 0 4px;font-size:18px;color:#2d3436;font-weight:700}
.profile-id{font-size:12px;color:#b2bec3;margin:0}
.profile-actions{display:flex;gap:6px;flex-shrink:0}
.badge{display:inline-block;padding:5px 12px;font-size:12px;font-weight:500;border:none;cursor:pointer;border-radius:8px;transition:all .2s}
.badge-done{background:#e8f8e8;color:#1a8a3e;border:1px solid #c8f0c8}
.badge-btn{background:#0984e3;color:#fff}
.badge-btn:hover{background:#0773c5;transform:translateY(-1px)}
.badge-edit{background:#fff;color:#0984e3;border:1.5px solid #0984e3}
.badge-edit:hover{background:#f0f8ff}
.profile-coins{font-size:12px;color:#636e72;margin:2px 0 0}

/* 经验条 */
.xp-section{padding:8px 24px 18px}
.xp-label{font-size:12px;color:#b2bec3;margin-bottom:6px}
.xp-bar{height:6px;background:#eaecef;border-radius:4px;overflow:hidden}
.xp-bar-fill{height:100%;background:linear-gradient(90deg,#0984e3,#6c5ce7);border-radius:4px;transition:width .5s}
.checkin-preview{font-size:10px}
.edit-link{font-size:11px;color:#0984e3;cursor:pointer;margin-left:6px;opacity:.7;transition:opacity .2s}
.edit-link:hover{opacity:1}
;color:#b2bec3;margin-top:4px;text-align:center}

/* 签名 */
.bio-section{padding:12px 24px;border-top:1px solid #eaecef;font-size:13px;color:#636e72;display:flex;align-items:flex-start;gap:8px}
.bio-label{color:#b2bec3;font-weight:500;flex-shrink:0}
.bio-text{color:#636e72;flex:1}

/* 编辑表单 */
.edit-section{padding:16px 24px;border-top:1px solid #eaecef;background:#fafafa}
.edit-table{width:100%;border-collapse:collapse}
.edit-table td{padding:6px 0}
.edit-label{width:60px;font-size:13px;color:#b2bec3;vertical-align:top;padding-top:10px}
.edit-table input,.edit-table textarea{width:100%;padding:8px 12px;border:1.5px solid #eaecef;border-radius:8px;font-size:13px;outline:none;box-sizing:border-box;font-family:inherit;background:#fff;transition:border-color .2s}
.edit-table input:focus,.edit-table textarea:focus{border-color:#0984e3;box-shadow:0 0 0 2px rgba(9,132,227,.1)}
.edit-table textarea{resize:vertical;min-height:50px}
.edit-msg{padding:6px 0;font-size:12px;display:block}
.edit-msg.success{color:#1a8a3e}
.edit-msg.error{color:#c9302c}
.edit-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}
.edit-actions .btn{padding:7px 20px;border:none;font-size:13px;font-weight:500;cursor:pointer;border-radius:8px;transition:all .2s}
.btn-cancel{background:#f0f0f0;color:#636e72}
.btn-cancel:hover{background:#e0e0e0}
.btn-save{background:#0984e3;color:#fff}
.btn-save:hover{background:#0773c5}

/* 信息表格 */
.info-table{width:100%;border-collapse:collapse;margin:0}
.info-table tr{border-bottom:1px solid #eaecef}
.info-table tr:last-child{border:none}
.info-table td{padding:10px 24px;font-size:13px}
.info-label{width:90px;color:#b2bec3;background:#fafafa;border-right:1px solid #eaecef}
.info-value{color:#2d3436}

/* 底部操作 */
.profile-footer-actions{padding:16px 24px;border-top:1px solid #eaecef;text-align:center}
.btn-logout{display:inline-block;padding:8px 28px;border:1.5px solid #eaecef;background:#fff;color:#636e72;font-size:13px;cursor:pointer;border-radius:10px;transition:all .2s}
.btn-logout:hover{border-color:#c9302c;color:#c9302c;background:#fff5f5}

.title-display{display:flex;align-items:center;gap:6px;padding:6px 0}
.title-icon{font-size:22px}
.title-name{font-size:14px;font-weight:600;color:#2d3436}
.title-badge{display:inline-flex;align-items:center;gap:2px;font-size:10px;background:#eaecef;color:#636e72;padding:2px 6px;border-radius:4px;margin-right:3px;vertical-align:middle;line-height:1.2}
.title-select-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:400px;overflow-y:auto}
.title-select-grid::-webkit-scrollbar{width:4px}
.title-select-grid::-webkit-scrollbar-thumb{background:#b2bec3;border-radius:2px}
.ts-item{padding:12px 10px;border:1.5px solid #eaecef;border-radius:10px;text-align:center;cursor:pointer;transition:all .15s;position:relative}
.ts-item.owned:hover{border-color:#0984e3;background:#f0f8ff}
.ts-item.locked{opacity:.4;cursor:not-allowed}
.ts-item.equipped{border-color:#0984e3;background:#eef4fa}
.ts-icon{font-size:24px;margin-bottom:4px}
.ts-name{font-size:13px;font-weight:600;color:#2d3436;margin-bottom:2px}
.ts-desc{font-size:10px;color:#b2bec3;line-height:1.3}
.ts-eq-badge{font-size:10px;color:#0984e3;margin-top:4px;font-weight:600}
.edit-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.4);z-index:10000;align-items:center;justify-content:center}

/* 顶部登录链接 */
.header-login{position:relative}
.header-login a{font-size:13px;color:#636e72;text-decoration:none;cursor:pointer}
.header-login a:hover{color:#0984e3}
.header-login .uname{color:#0984e3;font-weight:600}

/* ===== VIP 会员样式 ===== */
.vip-badges{display:flex;gap:10px;justify-content:center;padding:6px 0 4px}
.vb-icon{display:inline-flex;padding:4px 14px;border-radius:8px;font-size:12px;font-weight:600;letter-spacing:.5px;line-height:1.5}
.vb-icon.vip{background:#fdcb6e;color:#5a3e00}
.vb-icon.svip{background:#a29bfe;color:#fff}
.vb-icon.ultimate{background:linear-gradient(135deg,#74b9ff,#0984e3);color:#fff}
.vb-icon.token{background:#ffeaa7;color:#8d6e00}
.vb-icon.dim{background:#dfe6e9;color:#b2bec3}
