/* ============================================================
   用户中心 — User Center v4 (2026-10-06)
   Modern dashboard redesign. Official palette:
   light yellow #fdf6dd → #f7e9bd | border #d4b84a
   text #5a4a1a | headers #7a5c14 | card bg #fffdf5
   ============================================================ */

/* ---------- Page shell ---------- */
.uc-wrap {
    max-width: 1060px;
    margin: 36px auto 56px;
    padding: 0 24px;
    font-family: -apple-system, BlinkMacSystemFont, "PingFang SC",
        "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
    color: #3a3220;
    line-height: 1.6;
}

/* ---------- Top tabs ---------- */
.uc-tabs {
    display: flex;
    gap: 10px;
    margin-bottom: 30px;
    flex-wrap: wrap;
}
.uc-tab {
    display: inline-flex;
    align-items: center;
    padding: 11px 26px;
    background: #fffdf5;
    border: 1.5px solid #e8d9a8;
    border-radius: 999px;
    color: #7a5c14;
    text-decoration: none;
    font-size: 15px;
    font-weight: 600;
    transition: all .18s ease;
    box-shadow: 0 1px 3px rgba(120,100,40,.05);
}
.uc-tab:hover {
    background: #fdf6dd;
    border-color: #d4b84a;
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(120,100,40,.12);
    text-decoration: none;
    color: #5a4a1a;
}
.uc-tab.active {
    background: linear-gradient(180deg, #fdf6dd, #f7e9bd);
    color: #5a4a1a;
    border-color: #d4b84a;
    box-shadow: 0 2px 10px rgba(212,184,74,.28);
}

/* ---------- Profile hero ---------- */
.uc-profile {
    display: flex;
    align-items: center;
    gap: 36px;
    background: linear-gradient(135deg, #fffdf6 0%, #fdf6dd 60%, #f9efce 100%);
    border: 1px solid #e8d9a8;
    border-radius: 20px;
    padding: 36px 40px;
    margin-bottom: 30px;
    box-shadow: 0 6px 24px rgba(120,100,40,.09);
    position: relative;
    overflow: hidden;
}
.uc-profile::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: linear-gradient(90deg, #f7e9bd, #d4b84a, #f7e9bd);
}
.uc-avatarbox { text-align: center; flex-shrink: 0; }
.uc-avatar img {
    width: 104px; height: 104px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid #fff;
    box-shadow: 0 4px 16px rgba(120,100,40,.22);
    display: block;
    background: #f7e9bd;
}
.uc-avatar-fallback {
    display: inline-flex;
    width: 104px; height: 104px;
    border-radius: 50%;
    background: linear-gradient(135deg, #fdf6dd, #e8d194);
    color: #7a5c14;
    font-size: 42px;
    font-weight: 800;
    align-items: center;
    justify-content: center;
    border: 4px solid #fff;
    box-shadow: 0 4px 16px rgba(120,100,40,.22);
}
.uc-avatar-change {
    display: inline-block;
    margin-top: 12px;
    font-size: 13px;
    color: #7a5c14;
    text-decoration: none;
    border-bottom: 1px dotted #d4b84a;
    padding-bottom: 1px;
}
.uc-avatar-change:hover { color: #5a4a1a; border-bottom-style: solid; }
.uc-pinfo { flex: 1; min-width: 0; }
.uc-name {
    font-size: 27px;
    font-weight: 800;
    color: #2b2410;
    letter-spacing: .3px;
    margin: 0 0 8px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}
.uc-trust {
    font-size: 12px;
    font-weight: 700;
    background: #fff;
    color: #7a5c14;
    border: 1px solid #d4b84a;
    border-radius: 999px;
    padding: 4px 14px;
    white-space: nowrap;
    box-shadow: 0 1px 4px rgba(212,184,74,.15);
}
.uc-stats {
    display: flex;
    gap: 40px;
    margin: 20px 0 14px;
    flex-wrap: wrap;
}
.uc-stat { text-align: left; min-width: 64px; }
.uc-stat b {
    display: block;
    font-size: 26px;
    font-weight: 800;
    color: #2b2410;
    line-height: 1.2;
    margin-bottom: 2px;
}
.uc-stat span { font-size: 13px; color: #8a7a4a; }
.uc-meta { color: #8a7a4a; font-size: 14px; }
.uc-actions { flex-shrink: 0; display: flex; flex-direction: column; gap: 10px; }

/* ---------- Buttons ---------- */
.uc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 11px 26px;
    font-size: 14px;
    font-weight: 700;
    color: #5a4a1a;
    background: linear-gradient(180deg, #fdf6dd, #f7e9bd);
    border: 1.5px solid #d4b84a;
    border-radius: 999px;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(212,184,74,.22);
    transition: all .18s ease;
    white-space: nowrap;
    font-family: inherit;
    line-height: 1.4;
}
.uc-btn:hover {
    background: linear-gradient(180deg, #fef9e7, #faedc8);
    border-color: #b8962e;
    box-shadow: 0 5px 14px rgba(212,184,74,.32);
    transform: translateY(-1px);
    color: #5a4a1a;
    text-decoration: none;
}
.uc-btn:active { transform: translateY(0); box-shadow: 0 1px 4px rgba(212,184,74,.22); }
.uc-btn-sm { padding: 8px 18px; font-size: 13px; }
.uc-btn-lg { padding: 14px 40px; font-size: 16px; }
.uc-btn-ghost {
    background: #fffdf5;
    box-shadow: none;
}
.uc-btn-ghost:hover { background: #fdf6dd; }

/* ---------- Cards ---------- */
.uc-card {
    background: #fffdf5;
    border: 1px solid #e8d9a8;
    border-radius: 18px;
    padding: 30px 32px;
    margin-bottom: 30px;
    box-shadow: 0 4px 18px rgba(120,100,40,.07);
}
.uc-cardhead {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    padding-bottom: 18px;
    margin-bottom: 18px;
    border-bottom: 2px solid #f0e6c4;
}
.uc-cardtitle {
    font-weight: 800;
    font-size: 18px;
    color: #7a5c14;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
}
.uc-more {
    font-size: 14px;
    color: #7a5c14;
    text-decoration: none;
    font-weight: 600;
}
.uc-more:hover { color: #5a4a1a; text-decoration: underline; }
.uc-head-actions {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-left: auto;
    flex-wrap: wrap;
}

/* ---------- Level / stepper ---------- */
.uc-lv-badge {
    font-size: 14px;
    font-weight: 800;
    color: #5a4a1a;
    background: linear-gradient(180deg, #fdf6dd, #f7e9bd);
    border: 1.5px solid #d4b84a;
    border-radius: 999px;
    padding: 7px 20px;
    white-space: nowrap;
    box-shadow: 0 2px 8px rgba(212,184,74,.22);
}
.uc-lv-pointsrow {
    display: flex;
    align-items: center;
    gap: 22px;
    flex-wrap: wrap;
    margin: 10px 0 18px;
}
.uc-lv-points { font-size: 17px; font-weight: 800; color: #5a4a1a; }
.uc-lv-tonext { font-size: 14px; color: #8a7a55; }
.uc-lv-progressbar {
    height: 12px;
    background: #f0e9d2;
    border-radius: 999px;
    overflow: hidden;
    margin-bottom: 26px;
    box-shadow: inset 0 1px 3px rgba(120,100,40,.12);
}
.uc-lv-progressfill {
    height: 100%;
    background: linear-gradient(90deg, #f7e9bd, #e8d194);
    border-radius: 999px;
    transition: width .4s ease;
}
.uc-lv-stepper {
    display: flex;
    align-items: flex-start;
    margin: 14px 0 10px;
}
.uc-lv-step {
    flex: 1;
    text-align: center;
    position: relative;
    padding-top: 34px;
    min-width: 0;
}
.uc-lv-step::before {
    content: '';
    position: absolute;
    top: 15px;
    left: -50%;
    width: 100%;
    height: 4px;
    background: #f0e9d2;
    border-radius: 2px;
    z-index: 0;
}
.uc-lv-step:first-child::before { display: none; }
.uc-lv-dot {
    position: absolute;
    top: 7px;
    left: 50%;
    transform: translateX(-50%);
    width: 20px; height: 20px;
    border-radius: 50%;
    background: #f0e9d2;
    border: 3px solid #fff;
    box-shadow: 0 0 0 2px #e8d9a8;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    transition: all .2s ease;
}
.uc-lv-step.reached .uc-lv-dot {
    background: linear-gradient(135deg, #fdf6dd, #e8d194);
    box-shadow: 0 0 0 2px #d4b84a;
}
.uc-lv-step.reached::before {
    background: linear-gradient(90deg, #e8d194, #d4b84a);
}
.uc-lv-step.current .uc-lv-dot {
    width: 28px; height: 28px;
    top: 3px;
    background: linear-gradient(135deg, #fdf6dd, #f7e9bd);
    box-shadow: 0 0 0 3px #fff, 0 0 0 5px #d4b84a, 0 3px 10px rgba(212,184,74,.45);
}
.uc-lv-step.locked { opacity: .75; }
.uc-lv-step.locked .uc-lv-dot { background: #e8e2d0; box-shadow: 0 0 0 2px #d8d2c0; }
.uc-lv-step.crown .uc-lv-dot {
    background: linear-gradient(135deg, #fdf6dd, #f7e9bd);
    box-shadow: 0 0 0 2px #d4b84a;
    width: 24px; height: 24px;
    top: 5px;
}
.uc-lv-step.crown.current .uc-lv-dot {
    width: 30px; height: 30px;
    top: 2px;
    box-shadow: 0 0 0 3px #fff, 0 0 0 5px #d4b84a, 0 3px 12px rgba(212,184,74,.5);
}
.uc-lv-step.crown .uc-lv-sname { color: #7a5c14; font-weight: 800; }
.uc-lv-sname {
    display: block;
    font-size: 13px;
    color: #8a7a55;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-top: 6px;
    padding: 0 2px;
}
.uc-lv-step.current .uc-lv-sname { color: #5a4a1a; font-weight: 800; }
.uc-lv-step.locked .uc-lv-sname { color: #a09a88; }
.uc-lv-num {
    display: block;
    font-size: 11px;
    color: #b8a67a;
    margin-top: 3px;
}

/* ---------- PM card ---------- */
.uc-pmcard {
    background: linear-gradient(180deg, #fffef9, #fdf6dd);
}
.uc-pmbody {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    flex-wrap: wrap;
    padding: 10px 0 6px;
}
.uc-pmcount { font-size: 16px; color: #5a4a1a; }
.uc-pmcount b { font-size: 26px; color: #2b2410; margin: 0 4px; font-weight: 800; }
.uc-pmlinks { display: flex; gap: 12px; flex-wrap: wrap; }
.uc-badge {
    background: #d44;
    color: #fff;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    padding: 5px 14px;
    box-shadow: 0 2px 8px rgba(200,50,50,.3);
    white-space: nowrap;
}

/* ---------- List items ---------- */
.uc-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    padding: 15px 18px;
    margin-bottom: 10px;
    background: #fff;
    border: 1px solid #f0e9d2;
    border-radius: 12px;
    text-decoration: none;
    color: #333;
    transition: all .15s ease;
}
.uc-item:hover {
    background: #fdf6dd;
    border-color: #e8d9a8;
    transform: translateX(3px);
    box-shadow: 0 3px 10px rgba(120,100,40,.09);
}
.uc-item:hover .uc-item-t { color: #7a5c14; }
.uc-item-t {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 15px;
}
.uc-item-d {
    color: #a89a6e;
    font-size: 13px;
    white-space: nowrap;
    flex-shrink: 0;
}
.uc-empty {
    color: #a89a6e;
    font-size: 14px;
    padding: 26px 20px;
    text-align: center;
    background: #faf8f0;
    border-radius: 12px;
    border: 1px dashed #e8d9a8;
    margin: 0;
}
.uc-replies-row {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}
.uc-replies-row .uc-item { flex: 1 1 280px; margin-bottom: 0; }
.uc-replies-row .uc-empty { flex: 1 1 100%; }
.uc-postform {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
}
.uc-forumselect {
    padding: 10px 14px;
    border: 1.5px solid #d4b84a;
    border-radius: 12px;
    background: #fffdf6;
    font-size: 14px;
    color: #5a4a1a;
    max-width: 160px;
    font-family: inherit;
}
.uc-forumselect:focus {
    outline: none;
    border-color: #b8962e;
    box-shadow: 0 0 0 3px rgba(212,184,74,.2);
}
.uc-clearform { margin: 0; }

/* ---------- Settings ---------- */
.uc-notice {
    background: linear-gradient(180deg, #fdf6dd, #f7e9bd);
    border: 1.5px solid #d4b84a;
    color: #5a4a1a;
    border-radius: 14px;
    padding: 16px 22px;
    margin-bottom: 26px;
    font-size: 15px;
    font-weight: 600;
    text-align: center;
    box-shadow: 0 2px 10px rgba(212,184,74,.18);
}
.uc-setting-row {
    display: flex;
    align-items: center;
    gap: 22px;
    padding: 22px 4px;
    border-bottom: 1px solid #f0e9d2;
    flex-wrap: wrap;
}
.uc-setting-row:last-child { border-bottom: none; }
.uc-setting-label {
    font-size: 16px;
    font-weight: 700;
    color: #5a4a1a;
    min-width: 170px;
}
.uc-setting-desc {
    font-size: 14px;
    color: #8a7a55;
    flex: 1;
    min-width: 220px;
}
.uc-input {
    padding: 12px 18px;
    border: 1.5px solid #e8d9a8;
    border-radius: 12px;
    font-size: 15px;
    color: #333;
    background: #fff;
    min-width: 250px;
    font-family: inherit;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.uc-input:focus {
    outline: none;
    border-color: #d4b84a;
    box-shadow: 0 0 0 3px rgba(212,184,74,.18);
}
.uc-select { cursor: pointer; }
.uc-setting-actions { margin-top: 30px; text-align: center; }

/* Toggle switch */
.uc-switch {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    user-select: none;
}
.uc-switch input { display: none; }
.uc-switch-ui {
    width: 54px; height: 30px;
    border-radius: 999px;
    background: #e8e2d0;
    position: relative;
    transition: background .2s ease;
    flex-shrink: 0;
    box-shadow: inset 0 1px 3px rgba(0,0,0,.12);
}
.uc-switch-ui::after {
    content: '';
    position: absolute;
    top: 3px; left: 3px;
    width: 24px; height: 24px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 5px rgba(0,0,0,.22);
    transition: left .2s ease;
}
.uc-switch input:checked + .uc-switch-ui {
    background: linear-gradient(180deg, #f7e9bd, #e8d194);
}
.uc-switch input:checked + .uc-switch-ui::after { left: 27px; }
.uc-switch-text { font-size: 14px; color: #5a4a1a; font-weight: 600; }

/* ---------- Avatar picker ---------- */
.uc-avatar-hint {
    color: #8a7a55;
    font-size: 15px;
    margin: 0 0 26px;
    text-align: center;
}
.uc-avatar-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(92px, 1fr));
    gap: 20px;
    margin-bottom: 34px;
}
.uc-avatar-pick {
    position: relative;
    cursor: pointer;
    border-radius: 18px;
    border: 3px solid transparent;
    transition: all .2s ease;
    overflow: hidden;
    background: #fff;
}
.uc-avatar-pick img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    display: block;
    border-radius: 14px;
}
.uc-avatar-pick:hover {
    transform: scale(1.06);
    box-shadow: 0 6px 16px rgba(120,100,40,.16);
}
.uc-avatar-pick.selected {
    border-color: #d4b84a;
    box-shadow: 0 0 0 3px rgba(212,184,74,.3), 0 6px 16px rgba(120,100,40,.16);
}
.uc-avatar-pick input { display: none; }
.uc-avatar-check {
    position: absolute;
    top: 8px; right: 8px;
    width: 28px; height: 28px;
    background: linear-gradient(180deg, #fdf6dd, #f7e9bd);
    border: 1.5px solid #d4b84a;
    border-radius: 50%;
    color: #5a4a1a;
    font-size: 15px;
    font-weight: 800;
    display: none;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 6px rgba(120,100,40,.25);
}
.uc-avatar-pick.selected .uc-avatar-check { display: inline-flex; }
.uc-avatar-actions { text-align: center; }

/* ---------- Pagination ---------- */
.uc-pagination {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 26px;
    flex-wrap: wrap;
}
.uc-pagination a,
.uc-pagination strong,
.uc-pagination span {
    min-width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    padding: 0 10px;
}
.uc-pagination a {
    background: #fffdf5;
    border: 1.5px solid #e8d9a8;
    color: #7a5c14;
}
.uc-pagination a:hover {
    border-color: #d4b84a;
    background: #fdf6dd;
}
.uc-pagination strong {
    background: linear-gradient(180deg, #fdf6dd, #f7e9bd);
    border: 1.5px solid #d4b84a;
    color: #5a4a1a;
}

/* ---------- Mobile ---------- */
@media (max-width: 760px) {
    .uc-wrap { margin: 22px auto 36px; padding: 0 14px; }
    .uc-tabs { gap: 8px; margin-bottom: 22px; }
    .uc-tab { padding: 10px 20px; font-size: 14px; }
    .uc-profile {
        flex-wrap: wrap;
        padding: 26px 22px;
        gap: 22px;
        border-radius: 16px;
    }
    .uc-avatar img, .uc-avatar-fallback { width: 76px; height: 76px; font-size: 32px; }
    .uc-name { font-size: 21px; }
    .uc-stats { gap: 26px; margin: 14px 0 10px; }
    .uc-stat b { font-size: 21px; }
    .uc-actions { width: 100%; }
    .uc-actions .uc-btn { width: 100%; box-sizing: border-box; }
    .uc-card { padding: 22px 20px; margin-bottom: 22px; border-radius: 14px; }
    .uc-cardtitle { font-size: 16px; }
    .uc-pmbody { flex-direction: column; align-items: stretch; }
    .uc-pmlinks { flex-direction: column; }
    .uc-pmlinks .uc-btn { width: 100%; box-sizing: border-box; }
    .uc-replies-row .uc-item { flex: 1 1 100%; }
    .uc-setting-row { flex-direction: column; align-items: stretch; gap: 10px; padding: 18px 2px; }
    .uc-setting-label { min-width: 0; }
    .uc-input { width: 100%; box-sizing: border-box; min-width: 0; }
    .uc-lv-stepper { margin: 10px -4px 6px; }
    .uc-lv-step { padding-top: 30px; }
    .uc-lv-sname { font-size: 10px; }
    .uc-lv-num { font-size: 9px; }
    .uc-avatar-grid { grid-template-columns: repeat(auto-fill, minmax(74px, 1fr)); gap: 14px; }
    .uc-head-actions { width: 100%; margin-left: 0; }
    .uc-postform { width: 100%; }
    .uc-forumselect { flex: 1; max-width: none; }
}

/* ============================================================
   Phase 1 (2026-10-06): 6-screen User Center — new components
   Tokens: light yellow #fdf6dd→#f7e9bd | border #d4b84a
   text #5a4a1a | headers #7a5c14 | card #fffdf5
   4px spacing base | 8px radius | CJK-first fonts
   ============================================================ */

/* ---------- State: skeleton (loading) ---------- */
.uc-skeleton { margin: 0 0 24px; }
.uc-sk-line {
    height: 16px; border-radius: 8px; margin-bottom: 12px;
    background: linear-gradient(90deg, #f7e9bd 25%, #fdf6dd 50%, #f7e9bd 75%);
    background-size: 200% 100%;
    animation: uc-sk-shimmer 1.2s infinite linear;
}
@keyframes uc-sk-shimmer { to { background-position: -200% 0; } }

/* ---------- State: degraded banner ---------- */
.uc-degraded {
    background: #fdf6dd; border: 1.5px solid #d4b84a; border-radius: 8px;
    color: #5a4a1a; padding: 12px 16px; margin-bottom: 24px; font-size: 14px;
}

/* ---------- State: error card ---------- */
.uc-state-card { text-align: center; padding: 40px 28px; }

/* ---------- Notices ---------- */
.uc-notice-err {
    background: #fdecea; border-color: #e8a8a0; color: #8a2b1e;
}

/* ---------- Pills ---------- */
.uc-pill {
    display: inline-block; padding: 4px 14px; border-radius: 999px;
    background: linear-gradient(180deg, #fdf6dd, #f7e9bd);
    border: 1px solid #d4b84a; color: #5a4a1a; font-size: 13px; font-weight: 600;
}
.uc-pill-muted { background: #f5f0e0; border-color: #e8d9a8; color: #7a5c14; }

/* ---------- Sessions ---------- */
.uc-session-row {
    display: flex; align-items: center; justify-content: space-between;
    gap: 16px; padding: 16px; margin-bottom: 12px;
    background: #fffdf5; border: 1px solid #e8d9a8; border-radius: 8px;
}
.uc-session-info { min-width: 0; }
.uc-session-dev { font-weight: 600; color: #5a4a1a; font-size: 15px; word-break: break-all; }
.uc-session-meta { color: #8a7a4a; font-size: 13px; margin-top: 4px; }

/* ---------- Danger button ---------- */
.uc-btn-danger {
    background: linear-gradient(180deg, #fdecea, #f9d9d2);
    border-color: #d48a7a; color: #8a2b1e;
}
.uc-btn-danger:hover { background: linear-gradient(180deg, #fef4f2, #fbe3dd); border-color: #b86a5a; }

/* ---------- Font size radios ---------- */
.uc-fontradios { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 20px; }
.uc-fontradio {
    display: flex; align-items: center; gap: 8px; cursor: pointer;
    padding: 10px 18px; border: 1.5px solid #e8d9a8; border-radius: 8px;
    background: #fffdf5; transition: all .15s ease;
}
.uc-fontradio:hover { border-color: #d4b84a; }
.uc-fontradio.selected {
    border-color: #d4b84a; background: linear-gradient(180deg, #fdf6dd, #f7e9bd);
    box-shadow: 0 2px 8px rgba(212,184,74,.25);
}
.uc-fontradio input { accent-color: #b8962e; }
.uc-fontradio em { font-style: normal; color: #8a7a4a; font-size: 12px; }

/* ---------- Live preview ---------- */
.uc-preview-box {
    border: 1.5px dashed #d4b84a; border-radius: 8px; padding: 20px;
    background: #fffefa; margin-bottom: 8px;
}
.uc-preview-label { font-size: 12px; color: #8a7a4a; margin-bottom: 8px; }
.uc-preview-text { color: #3a3220; line-height: 1.8; margin: 0; }

/* ---------- Source checkboxes ---------- */
.uc-sourcegrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; margin-bottom: 8px; }
.uc-sourcecheck {
    display: flex; align-items: center; gap: 10px; cursor: pointer;
    padding: 10px 14px; border: 1px solid #e8d9a8; border-radius: 8px;
    background: #fffdf5; font-size: 14px; transition: border-color .15s ease;
}
.uc-sourcecheck:hover { border-color: #d4b84a; }
.uc-sourcecheck input { accent-color: #b8962e; width: 16px; height: 16px; }

/* ---------- Item rows (saved/followed) ---------- */
.uc-item-row {
    display: flex; align-items: center; gap: 12px;
    padding: 12px 4px; border-bottom: 1px solid #f0e6c8;
}
.uc-item-row:last-child { border-bottom: none; }
.uc-checkwrap { display: inline-flex; cursor: pointer; flex-shrink: 0; }
.uc-checkwrap input { width: 18px; height: 18px; accent-color: #b8962e; cursor: pointer; }

/* ---------- Empty state ---------- */
.uc-empty-state { text-align: center; padding: 48px 20px; }
.uc-empty-icon { font-size: 48px; margin-bottom: 16px; }
.uc-empty-tip { color: #8a7a4a; font-size: 14px; margin: 8px 0 20px; }

/* ---------- Textarea ---------- */
.uc-textarea { min-height: 84px; resize: vertical; line-height: 1.6; }

/* ---------- Mobile ---------- */
@media (max-width: 760px) {
    .uc-session-row { flex-direction: column; align-items: flex-start; }
    .uc-fontradios { gap: 8px; }
    .uc-sourcegrid { grid-template-columns: 1fr 1fr; }
    .uc-item-row { flex-wrap: wrap; }
}
