/* ===========================================================
   RyeBlog 用户中心样式（统一继承 themes.css 变量）
   =========================================================== */

.user-layout { display:flex; gap:24px; padding:24px 0; min-height:calc(100vh - 140px); }
.user-side { width:240px; flex-shrink:0; }

.user-card {
    background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:22px;
    text-align:center; box-shadow:var(--shadow); margin-bottom:16px;
}
.user-card .uc-avatar { width:72px; height:72px; border-radius:50%; border:3px solid var(--g-100); margin-bottom:10px; }
.user-card h3 { margin:0 0 4px; color:var(--g-900); font-size:1.15rem; }
.user-card .uc-email { margin:0; color:var(--muted); font-size:.85rem; word-break:break-all; }
.user-card .uc-bio { margin:8px 0 0; color:var(--ink); font-size:.9rem; line-height:1.5; }

.user-nav { display:flex; flex-direction:column; gap:4px; background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:10px; box-shadow:var(--shadow); }
.user-nav a { padding:11px 16px; border-radius:10px; font-weight:500; color:var(--ink); transition:all .15s; }
.user-nav a:hover { background:var(--g-050); color:var(--g-700); }
.user-nav a.active { background:var(--g-600); color:#fff; }
.user-nav a .badge { float:right; background:var(--g-100); color:var(--g-900); padding:1px 8px; border-radius:10px; font-size:.75rem; }

.user-main { flex:1; min-width:0; }
.user-main h1 { margin:0 0 20px; color:var(--g-900); font-size:1.4rem; }

.uc-panel { background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:24px; box-shadow:var(--shadow); margin-bottom:20px; }
.uc-panel h2 { margin:0 0 16px; font-size:1.1rem; color:var(--g-700); border-bottom:2px solid var(--g-100); padding-bottom:8px; }

.uc-form .form-row { display:flex; flex-wrap:wrap; gap:14px; margin-bottom:14px; }
.uc-form .form-row > div { flex:1; min-width:200px; }
.uc-form label { display:block; font-weight:600; margin:6px 0 6px; color:var(--g-900); font-size:.92rem; }
.uc-form input[type=text],
.uc-form input[type=email],
.uc-form input[type=password],
.uc-form input[type=tel],
.uc-form input[type=url],
.uc-form input[type=search],
.uc-form input[type=file],
.uc-form select,
.uc-form textarea {
    width:100%; padding:10px 14px; border:1px solid var(--line); border-radius:10px;
    font:inherit; outline:none; background:var(--white); color:var(--ink); font-size:14px;
    transition:border-color .15s, background .15s;
}
.uc-form input:focus, .uc-form select:focus, .uc-form textarea:focus { border-color:var(--g-500); background:#fff; box-shadow:0 0 0 3px rgba(67,160,71,.12); }
.uc-form .hint { color:var(--muted); font-size:.78rem; margin-top:4px; }
.uc-form .radio-group { display:flex; flex-wrap:wrap; gap:14px; padding:6px 0; }
.uc-form .radio-group label { font-weight:500; color:var(--ink); display:flex; align-items:center; gap:6px; margin:0; cursor:pointer; }
.uc-form .actions { margin-top:18px; display:flex; gap:10px; flex-wrap:wrap; }

.uc-stat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:12px; margin-bottom:18px; }
.uc-stat { background:var(--white); border:1px solid var(--line); border-radius:12px; padding:16px; box-shadow:var(--shadow); text-align:center; }
.uc-stat .stat-num { display:block; font-size:1.5rem; font-weight:700; color:var(--g-700); }
.uc-stat .stat-label { display:block; color:var(--muted); font-size:.82rem; margin-top:4px; }

.uc-table { width:100%; border-collapse:collapse; }
.uc-table th, .uc-table td { padding:12px 14px; text-align:left; border-bottom:1px solid var(--line); }
.uc-table th { color:var(--g-700); font-size:.9rem; background:var(--g-025); }
.uc-table tr:hover td { background:var(--g-025); }
.uc-table .badge { display:inline-block; padding:2px 10px; border-radius:10px; font-size:.75rem; font-weight:600; }
.uc-table .badge-pending { background:var(--g-100); color:var(--g-900); }
.uc-table .badge-accepted { background:#cce8d0; color:#1f6b2e; }
.uc-table .badge-rejected { background:#f5c2bd; color:#b3261e; }

.uc-item { background:var(--white); border:1px solid var(--line); border-radius:12px; padding:16px 20px; margin-bottom:12px; box-shadow:0 2px 8px rgba(46,107,53,.06); }
.uc-item .uc-item-title { font-weight:600; color:var(--g-900); }
.uc-item .uc-item-title a { color:var(--g-700); }
.uc-item .uc-item-title a:hover { text-decoration:underline; }
.uc-item .uc-item-meta { color:var(--muted); font-size:.82rem; margin-top:4px; }
.uc-item .uc-item-content { margin-top:8px; color:var(--ink); line-height:1.6; }
.uc-item .uc-quote { background:var(--g-050); border-left:4px solid var(--g-500); padding:8px 14px; margin:8px 0; border-radius:0 8px 8px 0; color:var(--ink); font-size:.9rem; }
.uc-item .uc-suggestion { color:var(--g-700); font-weight:500; }
.uc-item .uc-actions { margin-top:10px; display:flex; gap:10px; font-size:.85rem; }
.uc-item .uc-actions a, .uc-item .uc-actions button { color:var(--g-700); background:none; border:none; padding:0; cursor:pointer; font:inherit; }
.uc-item .uc-actions a:hover, .uc-item .uc-actions button:hover { color:var(--g-500); text-decoration:underline; }

.uc-notice-ok { background:var(--g-050); color:var(--g-700); border:1px solid var(--g-200); padding:12px 16px; border-radius:10px; margin-bottom:16px; }
.uc-notice-err { background:#fdecea; color:#b3261e; border:1px solid #f5c2bd; padding:12px 16px; border-radius:10px; margin-bottom:16px; }

.uc-empty { text-align:center; padding:40px; color:var(--muted); }

/* 头像选择器 */
.uc-avatar-picker { display:flex; align-items:center; gap:14px; margin-bottom:14px; }
.uc-avatar-picker img { width:64px; height:64px; border-radius:50%; border:3px solid var(--g-100); }
.uc-avatar-picker .uc-avatar-actions { display:flex; flex-direction:column; gap:6px; font-size:.85rem; }

/* 公共按钮（沿用主题） */
.btn { display:inline-block; background:var(--g-600); color:#fff; border:none; padding:9px 22px; border-radius:10px; cursor:pointer; font-size:14px; font-weight:600; transition:background .15s; }
.btn:hover { background:var(--g-700); }
.btn-ghost { background:transparent; color:var(--g-700); border:1px solid var(--line); }
.btn-ghost:hover { background:var(--g-050); color:var(--g-700); }
.btn-sm { padding:6px 14px; font-size:.85rem; border-radius:8px; }
.btn-danger { background:#b3261e; }
.btn-danger:hover { background:#8e1f18; }

/* 登录/注册/密码重置页 */
.auth-wrap { min-height:calc(100vh - 60px); display:flex; align-items:center; justify-content:center; padding:40px 20px; background:var(--g-025); }
.auth-box { background:var(--white); border:1px solid var(--line); border-radius:18px; padding:36px; width:min(420px,92vw); box-shadow:0 12px 40px rgba(46,107,53,.15); }
.auth-box h1 { margin:0 0 4px; color:var(--g-900); text-align:center; font-size:1.6rem; }
.auth-box p.sub { text-align:center; color:var(--muted); margin:0 0 24px; }
.auth-box label { display:block; font-weight:600; margin:14px 0 6px; color:var(--g-900); font-size:.92rem; }
.auth-box input[type=text],
.auth-box input[type=email],
.auth-box input[type=password],
.auth-box input[type=tel],
.auth-box input[type=url],
.auth-box textarea {
    width:100%; padding:11px 14px; border:1px solid var(--line); border-radius:10px; font:inherit; outline:none; background:#fff; color:var(--ink); font-size:15px;
    transition:border-color .15s, box-shadow .15s;
}
.auth-box input:focus, .auth-box textarea:focus { border-color:var(--g-500); box-shadow:0 0 0 3px rgba(67,160,71,.12); }
.auth-box .btn { display:inline-block; background:var(--g-600); color:#fff; border:none; padding:12px 0; border-radius:10px; cursor:pointer; font-weight:600; font-size:1rem; width:100%; transition:background .15s; margin-top:20px; }
.auth-box .btn:hover { background:var(--g-700); }
.auth-box .auth-links { text-align:center; margin-top:18px; font-size:.9rem; }
.auth-box .auth-links a { color:var(--g-700); }
.auth-box .auth-links a:hover { color:var(--g-500); }
.auth-logo { text-align:center; margin-bottom:6px; }
.auth-logo img { width:56px; height:56px; }

@media (max-width:760px) {
    .user-layout { flex-direction:column; }
    .user-side { width:100%; }
    .user-nav { flex-direction:row; flex-wrap:wrap; }
    .user-nav a { flex:1; text-align:center; min-width:80px; }
}
