/* 技能面板 · 苹果简洁风 + 毛玻璃 */

.sk-wrap {
    max-width: 720px;
    margin: 0 auto;
    padding: 16px 16px 40px;
    font-size: 14px;
}

.sk-loading, .sk-error, .sk-empty {
    text-align: center;
    color: var(--text-secondary);
    padding: 32px 12px;
    font-size: 13px;
}

/* 毛玻璃容器 */
.sk-glass {
    background: var(--bg-secondary);
    -webkit-backdrop-filter: blur(20px) saturate(1.6);
    backdrop-filter: blur(20px) saturate(1.6);
    border: 0.5px solid rgba(255, 255, 255, 0.45);
    border-radius: 18px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.06);
}

/* ===== 灵感池：大分类页签 ===== */
.sk-tabs {
    display: flex; gap: 4px;
    padding: 4px; margin-bottom: 16px;
    border-radius: 16px;
    position: sticky; top: 8px; z-index: 60;
}
.sk-tab {
    flex: 1; display: flex; align-items: center; justify-content: center;
    gap: 3px; border: none; cursor: pointer;
    background: transparent; color: var(--text-secondary);
    font-size: 12px; font-family: inherit;
    padding: 8px 0; border-radius: 12px;
    transition: background .15s, color .15s;
    white-space: nowrap;
}
.sk-tab-icon { font-size: 13px; }
.sk-tab em {
    font-style: normal; font-size: 10px;
    background: rgba(120,120,128,0.14);
    border-radius: 8px; padding: 0 5px; min-width: 14px;
}
.sk-tab.active {
    background: #0f6e56; color: #fff;
}
.sk-tab.active em { background: rgba(255,255,255,0.22); color: #fff; }
[data-theme="dark"] .sk-tab.active { background: #1d9e75; }

/* ===== 孵化台 ===== */
.sk-stage-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin-bottom: 16px;
}
.sk-stat {
    background: var(--bg-secondary);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    border: 0.5px solid rgba(255,255,255,0.4);
    border-radius: 14px;
    padding: 10px 6px;
    text-align: center;
}
.sk-stat-num { font-size: 22px; font-weight: 600; display: block; }
.sk-stat-label { font-size: 11px; color: var(--text-secondary); }

.sk-stage { margin-bottom: 18px; }
.sk-stage-head {
    display: flex; align-items: center; gap: 8px;
    font-size: 13px; font-weight: 600; color: var(--text-primary);
    margin-bottom: 10px; padding: 0 4px;
}
.sk-stage-head i {
    width: 8px; height: 8px; border-radius: 50%; display: inline-block;
    background: var(--text-muted);
}
.sk-stage-s1 .sk-stage-head i { background: #c7c7cc; }
.sk-stage-s2 .sk-stage-head i { background: #ef9f27; }
.sk-stage-s3 .sk-stage-head i { background: #1d9e75; }
.sk-stage-shelf .sk-stage-head i { background: #a1a1a6; }

.sk-proj-card {
    background: var(--bg-secondary);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    border: 0.5px solid rgba(255,255,255,0.4);
    border-radius: 16px;
    padding: 14px 16px;
    margin-bottom: 8px;
    cursor: pointer;
    transition: transform .15s ease, box-shadow .15s ease;
}
.sk-proj-card:active { transform: scale(.98); }
.sk-proj-head {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.sk-proj-name { font-weight: 600; font-size: 15px; }
.sk-proj-meta { font-size: 12px; color: var(--text-secondary); margin-top: 6px; }
.sk-proj-shelf { opacity: .65; display: flex; justify-content: space-between; align-items: center; }
.sk-shelf-tag { font-size: 11px; color: var(--text-secondary); }

.sk-tags { display: flex; gap: 6px; margin-top: 6px; flex-wrap: wrap; }
.sk-tags span {
    font-size: 11px; padding: 1px 8px; border-radius: 8px;
    background: var(--bg-tertiary); color: var(--text-secondary);
}

.sk-prog {
    height: 5px; border-radius: 3px; background: rgba(120,120,128,0.18);
    overflow: hidden; margin-top: 8px;
}
.sk-prog span { display: block; height: 100%; border-radius: 3px; background: #1d9e75; }
.sk-prog.big { height: 8px; border-radius: 4px; margin: 10px 0 6px; }

.sk-grade {
    font-size: 11px; font-weight: 600; padding: 2px 10px; border-radius: 10px;
    background: rgba(120,120,128,0.14); color: var(--text-secondary);
}
.sk-grade-S, .sk-grade-SS, .sk-grade-SSS { background: #fcebeb; color: #a32d2d; }
.sk-grade-A { background: #e6f1fb; color: #185fa5; }
.sk-grade-B { background: #eaf3de; color: #3b6d11; }

.sk-fab {
    position: fixed; right: max(20px, calc(50% - 340px));
    bottom: 84px;
    width: 52px; height: 52px; border-radius: 50%;
    background: #0f6e56; color: #fff; font-size: 26px; line-height: 1;
    border: none; cursor: pointer;
    box-shadow: 0 6px 20px rgba(15,110,86,0.35);
    z-index: 90;
}

/* 详情弹层：固定头部 + 内部滚动主体（修复 iOS 下显示不全/裁切） */
.sk-overlay {
    position: fixed; inset: 0; z-index: 300;
    background: rgba(0,0,0,0.32);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    display: flex; align-items: flex-end; justify-content: center;
}
.sk-detail {
    display: flex; flex-direction: column;
    width: min(560px, 100%);
    height: 92vh; height: 92dvh;
    border-radius: 24px 24px 0 0;
    overflow: hidden;
}
.sk-grabber {
    flex: 0 0 auto;
    width: 36px; height: 4px; border-radius: 2px;
    background: rgba(120,120,128,0.3);
    margin: 8px auto 2px;
}
.sk-detail-top {
    flex: 0 0 auto;
    display: flex; align-items: center; gap: 10px;
    padding: 8px 20px 10px;
    border-bottom: 0.5px solid rgba(120,120,128,0.2);
}
.sk-back {
    border: none; background: none; cursor: pointer;
    font-size: 15px; color: var(--text-secondary);
    font-family: inherit;
}
.sk-detail-title { font-size: 17px; font-weight: 600; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sk-detail-body {
    flex: 1; min-height: 0;
    overflow-y: auto; -webkit-overflow-scrolling: touch;
    padding: 14px 20px calc(30px + env(safe-area-inset-bottom));
}
.sk-detail-sub { font-size: 12px; color: var(--text-secondary); margin: 6px 0 12px; }

.sk-dims {
    display: grid; grid-template-columns: repeat(5, 1fr);
    gap: 8px; margin-bottom: 10px;
}
.sk-dim {
    background: var(--bg-tertiary); border-radius: 12px;
    padding: 8px 4px; text-align: center;
}
.sk-dim-label { display: block; font-size: 11px; color: var(--text-secondary); }
.sk-dim-val { display: block; font-size: 16px; font-weight: 600; margin-top: 2px; }

.sk-detail-actions {
    display: flex; gap: 8px; flex-wrap: wrap;
    margin: 12px 0; padding-bottom: 12px;
    border-bottom: 0.5px solid rgba(120,120,128,0.2);
}

.sk-detail-section { margin-top: 14px; }
.sk-section-title { font-size: 13px; font-weight: 600; margin-bottom: 10px; }

/* 树状任务 */
.sk-tree-node { position: relative; }
.sk-tree-label {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
    padding: 9px 12px; margin-bottom: 6px;
    background: var(--bg-tertiary); border-radius: 12px;
    font-size: 13px;
}
.sk-tree-label.done { opacity: .55; }
.sk-tree-label.done .sk-task-content { text-decoration: line-through; }
.sk-task-level {
    font-size: 11px; color: #185fa5; font-weight: 600;
    background: rgba(24,95,165,0.1); padding: 1px 8px; border-radius: 8px;
}
.sk-task-content { flex: 1; min-width: 0; }
.sk-task-status { font-size: 11px; color: var(--text-secondary); }
.sk-tree-branch {
    margin-left: 16px; padding-left: 14px;
    border-left: 1.5px solid rgba(120,120,128,0.35);
}

.sk-mini-btn {
    border: none; background: rgba(29,158,117,0.12); color: #0f6e56;
    font-size: 11px; border-radius: 10px; padding: 3px 10px;
    cursor: pointer; font-family: inherit;
}
.sk-exp {
    font-size: 12px; color: var(--text-secondary);
    padding: 8px 12px; background: var(--bg-tertiary);
    border-radius: 12px; margin-bottom: 6px;
    display: flex; justify-content: space-between; gap: 10px;
}
.sk-exp-time { flex-shrink: 0; opacity: .7; }

/* 多维评级 */
.sk-dims-head {
    font-size: 11px; color: var(--text-secondary);
    margin-bottom: 6px;
}
.sk-dims .sk-dim.clickable { cursor: pointer; transition: transform .12s; }
.sk-dims .sk-dim.clickable:active { transform: scale(.95); }
.sk-dims .sk-dim.hint .sk-dim-val { opacity: .4; }
.sk-dim-bar {
    display: block; height: 4px; border-radius: 2px;
    background: rgba(120,120,128,0.18); margin-top: 5px; overflow: hidden;
}
.sk-dim-bar b { display: block; height: 100%; background: #1d9e75; border-radius: 2px; }
.sk-dims .sk-dim.hint .sk-dim-bar b { background: rgba(120,120,128,0.4); }

/* 关联项目 */
.sk-sec-flex { display: flex; align-items: center; gap: 8px; }
.sk-sec-flex .sk-mini-btn { margin-left: auto; }
.sk-rels { display: flex; flex-direction: column; gap: 6px; }
.sk-rel {
    display: flex; align-items: center; gap: 8px;
    padding: 9px 12px; margin-bottom: 0;
    background: var(--bg-tertiary); border-radius: 12px;
    font-size: 13px; cursor: pointer;
}
.sk-rel:active { opacity: .7; }
.sk-rel-type {
    font-size: 11px; font-weight: 600; flex-shrink: 0;
    color: #185fa5; background: rgba(24,95,165,0.1);
    padding: 1px 8px; border-radius: 8px;
}
.sk-rel-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sk-rel-meta { font-size: 11px; color: var(--text-secondary); flex-shrink: 0; }

/* 附件 · 聊天记录 */
.sk-att {
    display: flex; align-items: center; gap: 10px;
    padding: 9px 12px; margin-bottom: 6px;
    background: var(--bg-tertiary); border-radius: 12px;
    cursor: pointer;
}
.sk-att:active { opacity: .7; }
.sk-att-main { flex: 1; min-width: 0; }
.sk-att-title { display: block; font-size: 13px; font-weight: 600; }
.sk-att-prev {
    display: block; font-size: 11px; color: var(--text-secondary);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: 2px;
}
.sk-att-time { font-size: 11px; color: var(--text-secondary); flex-shrink: 0; }
.sk-att-full {
    white-space: pre-wrap; word-break: break-word;
    font-size: 13px; line-height: 1.7; font-family: inherit;
    background: var(--bg-tertiary); border-radius: 12px;
    padding: 14px; margin: 0 0 12px;
}

/* 附件一级窗口：叠在详情弹层之上 */
.sk-overlay.top { z-index: 400; }

/* ===== 欲望清单 ===== */
.sk-desire-top {
    padding: 14px 16px; margin-bottom: 14px;
    position: sticky; top: 8px; z-index: 50;
}
.sk-scan-bar {
    display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap;
    font-size: 12px; color: #0f6e56;
    background: rgba(29,158,117,0.12); border-radius: 12px;
    padding: 8px 12px; margin-bottom: 10px;
}
.sk-scan-bar.alert { color: #a32d2d; background: rgba(226,75,74,0.1); }

.sk-desire-add, .sk-daily-add { display: flex; gap: 8px; }
.sk-input {
    flex: 1; min-width: 0;
    background: var(--bg-tertiary);
    border: 0.5px solid rgba(120,120,128,0.25);
    border-radius: 12px; padding: 10px 14px;
    font-size: 14px; font-family: inherit; color: var(--text-primary);
    outline: none;
}
.sk-input:focus { border-color: #0f6e56; }

.sk-desire-card {
    background: var(--bg-secondary);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    border: 0.5px solid rgba(255,255,255,0.4);
    border-radius: 18px; padding: 16px; margin-bottom: 12px;
}
.sk-desire-card.hot { border: 1px solid rgba(226,75,74,0.35); }
.sk-desire-head {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.sk-rank {
    font-size: 12px; font-weight: 700; padding: 2px 11px;
    border-radius: 9px; background: rgba(120,120,128,0.14); color: var(--text-secondary);
}
.rk-SSS, .rk-SS { background: #a32d2d; color: #fff; }
.rk-S { background: #ef9f27; color: #fff; }
.rk-A { background: #e6f1fb; color: #185fa5; }
.rk-B { background: #eaf3de; color: #3b6d11; }
.sk-desire-name { font-weight: 600; font-size: 15px; }
.sk-desire-meta { font-size: 12px; color: var(--text-secondary); margin-left: auto; }

.sk-desire-dims {
    display: grid; grid-template-columns: repeat(2, 1fr);
    gap: 8px 14px; margin: 12px 0;
}
.sk-ddim { font-size: 12px; }
.sk-ddim > span { display: inline-flex; width: 46%; justify-content: space-between; color: var(--text-secondary); }
.sk-ddim i {
    display: block; height: 5px; margin-top: 4px; border-radius: 3px;
    background: rgba(120,120,128,0.18); overflow: hidden; font-style: normal;
}
.sk-ddim i b { display: block; height: 100%; background: #7f77dd; border-radius: 3px; }

.sk-prices {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: 8px; padding-top: 12px; font-size: 12px;
    border-top: 0.5px solid rgba(120,120,128,0.2);
}
.sk-prices > div span { display: block; color: var(--text-secondary); margin-bottom: 2px; }
.sk-prices > div b { font-size: 14px; font-weight: 600; }
.sk-prices .hit b { color: #a32d2d; }
em.up { color: #a32d2d; font-style: normal; font-size: 12px; }
em.down { color: #3b6d11; font-style: normal; font-size: 12px; }

.sk-cooling {
    margin-top: 10px; font-size: 12px; color: #ba7517;
    background: rgba(186,117,23,0.1); border-radius: 10px; padding: 6px 12px;
}
.sk-desire-actions, .sk-detail-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }

.sk-btn {
    border: 0.5px solid rgba(120,120,128,0.3);
    background: rgba(255,255,255,0.55);
    color: var(--text-primary);
    font-size: 13px; border-radius: 14px; padding: 7px 16px;
    cursor: pointer; font-family: inherit;
    transition: background .15s;
}
.sk-btn:active { background: var(--bg-tertiary); }
.sk-btn.primary { background: #0f6e56; color: #fff; border: none; }
.sk-btn.good { background: rgba(29,158,117,0.12); color: #0f6e56; border: none; }
.sk-btn.warn { background: rgba(226,75,74,0.08); color: #a32d2d; border: none; }

.sk-settled {
    font-size: 12px; color: var(--text-secondary);
    text-align: center; padding: 16px 0;
}

/* ===== 日常清单 ===== */
.sk-daily-top { padding: 14px 16px; margin-bottom: 14px; }
.sk-daily-list { padding: 6px 16px; margin-bottom: 12px; }
.sk-daily-list.done-list {
    background: transparent; border: none; box-shadow: none;
    -webkit-backdrop-filter: none; backdrop-filter: none;
    opacity: .7;
}
.sk-daily-item {
    display: flex; align-items: center; gap: 12px;
    padding: 12px 2px; font-size: 15px;
    border-bottom: 0.5px solid rgba(120,120,128,0.18);
    cursor: pointer;
}
.sk-daily-item:last-child { border-bottom: none; }
.sk-daily-item input[type=checkbox] { width: 20px; height: 20px; accent-color: #0f6e56; }
.sk-daily-name { flex: 1; min-width: 0; }
.sk-daily-name em { font-size: 12px; color: var(--text-secondary); font-style: normal; }
.sk-daily-item.done .sk-daily-name { text-decoration: line-through; color: var(--text-secondary); }
.sk-daily-time { font-size: 11px; color: var(--text-muted); }
.sk-del-btn { background: rgba(226,75,74,0.1); color: #a32d2d; padding: 3px 11px; font-size: 13px; }
.sk-daily-foot { text-align: center; font-size: 12px; color: var(--text-secondary); padding: 8px 0 24px; }

/* 深色模式微调 */
[data-theme="dark"] .sk-proj-card,
[data-theme="dark"] .sk-desire-card,
[data-theme="dark"] .sk-stat,
[data-theme="dark"] .sk-dims .sk-dim,
[data-theme="dark"] .sk-tree-label,
[data-theme="dark"] .sk-exp,
[data-theme="dark"] .sk-input,
[data-theme="dark"] .sk-btn {
    background: var(--bg-tertiary);
    border-color: rgba(255,255,255,0.12);
}
[data-theme="dark"] .sk-glass {
    border-color: rgba(255,255,255,0.1);
    box-shadow: 0 8px 32px rgba(0,0,0,0.3);
}
[data-theme="dark"] .sk-btn.primary { background: #1d9e75; }

@media (max-width: 600px) {
    .sk-dims { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .sk-dim-label { font-size: 10px; }
    .sk-prices { grid-template-columns: 1fr 1fr; }
    .sk-desire-meta { margin-left: 0; width: 100%; }
    .sk-fab { right: 20px; }
}

/* ===== 穿搭助手 ===== */
.sk-outfit-actions { display: flex; gap: 8px; margin-top: 14px; justify-content: center; }
.sk-plan-card { padding: 18px; }
.sk-plan-head {
    display: flex; justify-content: space-between; align-items: center;
    font-size: 13px; color: var(--text-secondary); margin-bottom: 12px;
}
.sk-plan-city { font-size: 15px; font-weight: 600; color: var(--text-primary); }
.sk-plan-temp {
    display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 6px;
}
.sk-plan-temp > div {
    background: var(--bg-tertiary); border-radius: 14px; padding: 12px; text-align: center;
}
.sk-plan-temp span { display: block; font-size: 11px; color: var(--text-secondary); }
.sk-plan-temp b { display: block; font-size: 22px; font-weight: 600; margin: 2px 0; }
.sk-plan-temp i { font-style: normal; font-size: 11px; color: #0f6e56; background: rgba(29,158,117,0.12); border-radius: 8px; padding: 1px 8px; }
.sk-plan-sec { margin-top: 14px; }
.sk-plan-sec .sk-section-title { font-size: 13px; font-weight: 600; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.sk-src-wardrobe { font-style: normal; font-size: 10px; color: #0f6e56; background: rgba(29,158,117,0.12); padding: 1px 8px; border-radius: 8px; font-weight: 400; }
.sk-src-default { font-style: normal; font-size: 10px; color: var(--text-secondary); background: rgba(120,120,128,0.12); padding: 1px 8px; border-radius: 8px; font-weight: 400; }
.sk-combo {
    display: flex; align-items: center; gap: 10px;
    background: var(--bg-tertiary); border-radius: 12px;
    padding: 10px 14px; margin-top: 8px; font-size: 13px;
}
.sk-combo-idx { font-size: 11px; color: var(--text-secondary); flex-shrink: 0; }
.sk-combo b { color: #0f6e56; font-weight: 600; }
.sk-combo-warmth { margin-left: auto; font-size: 11px; color: var(--text-secondary); flex-shrink: 0; }
.sk-plan-tips {
    margin-top: 14px; font-size: 12px; color: var(--text-secondary);
    background: rgba(186,117,23,0.08); border-radius: 12px; padding: 10px 14px;
}
.sk-plan-tips div + div { margin-top: 4px; }

.sk-ward-add { padding: 14px 16px; margin-bottom: 12px; }
.sk-ward-form { display: flex; gap: 8px; flex-wrap: wrap; }
.sk-ward-form .sk-input { flex: 1 1 140px; }
.sk-ward-list { padding: 6px 16px; }
.sk-ward-item {
    display: flex; align-items: center; gap: 10px;
    padding: 12px 2px; font-size: 14px;
    border-bottom: 0.5px solid rgba(120,120,128,0.18);
}
.sk-ward-item:last-child { border-bottom: none; }
.sk-ward-cat {
    font-size: 11px; color: #185fa5; font-weight: 600;
    background: rgba(24,95,165,0.1); padding: 1px 9px; border-radius: 8px; flex-shrink: 0;
}
.sk-ward-name { flex: 1; min-width: 0; }
.sk-ward-warmth { font-size: 11px; color: var(--text-secondary); flex-shrink: 0; }

.sk-hist-card { padding: 14px 16px; margin-bottom: 10px; }
.sk-hist-head {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
    font-size: 12px; color: var(--text-secondary); margin-bottom: 8px;
}
.sk-hist-head b { font-size: 14px; color: var(--text-primary); }
.sk-hist-line { font-size: 12px; color: var(--text-secondary); margin-top: 4px; }

@media (max-width: 600px) {
    .sk-plan-temp { grid-template-columns: 1fr 1fr; }
    .sk-ward-form .sk-input { flex: 1 1 100%; }
    .sk-ward-form select.sk-input { flex: 1 1 45%; }
}

/* ===== 任务视图（进行角度） ===== */
.sk-tasks .sk-task-proj { padding: 6px 16px; margin-bottom: 14px; }
.sk-task-proj-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 10px 0 6px; border-bottom: 0.5px solid rgba(120,120,128,0.2);
}
.sk-task-proj-name { font-size: 14px; font-weight: 600; }
.sk-task-proj-count { font-size: 11px; color: var(--text-secondary); }
.sk-task-row {
    display: flex; align-items: center; gap: 10px;
    padding: 11px 2px; font-size: 14px;
    border-bottom: 0.5px solid rgba(120,120,128,0.14);
    cursor: pointer;
}
.sk-task-row:last-child { border-bottom: none; }
.sk-task-row input[type=checkbox] { width: 19px; height: 19px; accent-color: #0f6e56; flex-shrink: 0; }
.sk-task-row .sk-task-level {
    font-size: 11px; color: #185fa5; font-weight: 600;
    background: rgba(24,95,165,0.1); padding: 1px 9px; border-radius: 8px;
    flex-shrink: 0; white-space: nowrap;
}
.sk-task-row .sk-task-content { flex: 1; min-width: 0; }
.sk-task-deadline { font-size: 11px; color: #ba7517; flex-shrink: 0; }
.sk-task-done-wrap { opacity: .6; }
.sk-task-row.done .sk-task-content { text-decoration: line-through; color: var(--text-secondary); }
.sk-tasks-foot {
    text-align: center; font-size: 12px; color: var(--text-secondary);
    padding: 10px 0 24px; line-height: 1.7;
}
.sk-task-offshelf {
    font-style: normal; font-size: 10px; font-weight: 400;
    color: var(--text-secondary); background: rgba(120,120,128,0.14);
    border-radius: 8px; padding: 1px 7px; margin-left: 8px; vertical-align: 1px;
}
.sk-task-proj.offshelf { opacity: .75; }

/* ===== 任务表格模式（任务名 / 关系 / 状态 / 级别） ===== */
.tk-bar { display: flex; gap: 8px; margin-bottom: 10px; padding: 0 2px; }
.tk-chip {
    border: none; font-family: inherit; font-size: 12px; cursor: pointer;
    padding: 6px 13px; border-radius: 14px;
    background: var(--bg-tertiary); color: var(--text-secondary);
}
.tk-chip.on { background: #0f6e56; color: #fff; }

.tk-table { border-radius: 16px; overflow: hidden; padding: 2px 0; }
.tk-head, .tk-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 84px 60px 44px;
    gap: 6px; align-items: center;
    padding: 10px 12px;
}
.tk-head {
    font-size: 11px; color: var(--text-secondary);
    border-bottom: 0.5px solid rgba(120,120,128,0.25);
}
.tk-head span:nth-child(3), .tk-head span:nth-child(4) { text-align: center; }
.tk-row { border-bottom: 0.5px solid rgba(120,120,128,0.14); font-size: 12.5px; cursor: pointer; }
.tk-row:last-child { border-bottom: none; }
.tk-row:active { background: rgba(120,120,128,0.08); }
.tk-row.done .tk-name-text { text-decoration: line-through; opacity: .55; }
.tk-name { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.tk-name-text {
    overflow: hidden; display: -webkit-box;
    -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    line-height: 1.4;
}
.tk-sub-n { font-size: 10px; font-style: normal; color: var(--text-secondary); }
.tk-rel { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.tk-rel b {
    font-size: 11px; font-weight: 600; overflow: hidden;
    text-overflow: ellipsis; white-space: nowrap;
}
.tk-rel i {
    font-size: 10px; font-style: normal; color: var(--text-secondary);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.tk-st {
    font-size: 10.5px; display: flex; align-items: center; justify-content: center;
    gap: 3px; white-space: nowrap; color: var(--text-secondary);
}
.tk-st .dot { width: 6px; height: 6px; border-radius: 50%; background: #c7c7cc; flex-shrink: 0; }
.tk-st.open { color: #ba7517; }
.tk-st.open .dot { background: #ff9f0a; }
.tk-st.done .dot { background: #34c759; }
.tk-lv {
    font-size: 10px; text-align: center; padding: 2px 0; border-radius: 7px;
    background: rgba(120,120,128,0.14); color: var(--text-secondary);
    white-space: nowrap; overflow: hidden;
}
.tk-lv.lv-main_big { background: rgba(255,59,48,0.12); color: #a32d2d; }
.tk-lv.lv-main_small { background: rgba(10,132,255,0.12); color: #185fa5; }
.tk-lv.lv-side { background: rgba(124,58,237,0.12); color: #6d28d9; }
.tk-lv.lv-daily { background: rgba(52,199,89,0.13); color: #248a3d; }

/* 任务详情（一级窗口） */
.tk-detail-grid {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px; margin-bottom: 4px;
}
.tk-detail-grid > div {
    background: var(--bg-tertiary); border-radius: 12px; padding: 9px 12px;
    min-width: 0;
}
.tk-detail-grid span { display: block; font-size: 10.5px; color: var(--text-secondary); }
.tk-detail-grid b {
    display: block; font-size: 13px; font-weight: 600; margin-top: 3px;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.tk-doing {
    font-size: 13px; line-height: 1.75; white-space: pre-wrap; word-break: break-word;
    background: var(--bg-tertiary); border-radius: 12px; padding: 13px 14px;
}
.tk-rels { display: flex; flex-direction: column; gap: 6px; }
.tk-rel-line {
    display: flex; align-items: center; gap: 10px;
    background: var(--bg-tertiary); border-radius: 12px; padding: 9px 12px;
    font-size: 12px;
}
.tk-rel-line span { font-size: 11px; color: var(--text-secondary); flex-shrink: 0; width: 56px; }
.tk-rel-line b {
    flex: 1; min-width: 0; font-weight: 500;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.tk-rel-line.sub { margin-left: 14px; }
.tk-rel-line b.is-done { text-decoration: line-through; opacity: .6; }
.tk-link { color: #0f6e56; cursor: pointer; }
.tk-meta {
    display: flex; gap: 14px; flex-wrap: wrap;
    font-size: 11px; color: var(--text-secondary); margin: 12px 0 2px;
}

/* ===== 灵感池 · 总览仪表盘 ===== */
.ov-hero {
    display: flex; align-items: center; justify-content: space-between;
    gap: 14px; padding: 18px 20px; margin-bottom: 12px;
}
.ov-kicker {
    font-size: 11px; letter-spacing: .08em; text-transform: uppercase;
    color: var(--text-muted); margin-bottom: 6px;
}
.ov-total { display: flex; align-items: baseline; gap: 8px; }
.ov-total b { font-size: 42px; line-height: 1; font-weight: 600; letter-spacing: -.02em; }
.ov-total span { font-size: 12.5px; color: var(--text-secondary); }
.ov-meta { margin-top: 8px; font-size: 11.5px; color: var(--text-secondary); line-height: 1.5; }

.ov-donut {
    position: relative; flex-shrink: 0;
    width: 104px; height: 104px; border-radius: 50%;
}
.ov-donut-hole {
    position: absolute; inset: 20px; border-radius: 50%;
    background: var(--bg-primary);
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    box-shadow: inset 0 0 0 0.5px rgba(120,120,128,0.16);
}
.ov-donut-hole b { font-size: 21px; font-weight: 600; line-height: 1.1; }
.ov-donut-hole span { font-size: 9.5px; color: var(--text-muted); }

.ov-card { padding: 16px 18px 18px; margin-bottom: 12px; }
.ov-card-head {
    display: flex; align-items: baseline; justify-content: space-between;
    gap: 10px; margin-bottom: 10px;
}
.ov-card-head span { font-size: 13.5px; font-weight: 600; }
.ov-card-head em { font-style: normal; font-size: 10.5px; color: var(--text-muted); text-align: right; }

.ov-stack {
    display: flex; height: 12px; border-radius: 6px; overflow: hidden;
    background: rgba(120,120,128,0.16);
}
.ov-stack span { display: block; height: 100%; }
.ov-legend { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.ov-legend-item {
    display: inline-flex; align-items: center; gap: 6px;
    border: none; cursor: pointer; font-family: inherit;
    background: rgba(120,120,128,0.12);
    color: var(--text-primary);
    padding: 6px 12px; border-radius: 20px; font-size: 12px;
    transition: transform .12s, background .12s;
}
.ov-legend-item:active { transform: scale(.96); }
.ov-legend-item i { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.ov-legend-item b { font-size: 12.5px; font-weight: 600; margin-left: 2px; }

.ov-table { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.ov-tr {
    display: grid;
    grid-template-columns: 1.5fr .55fr 1.15fr .5fr .72fr .5fr 12px;
    align-items: center; gap: 8px;
    min-width: 420px;
    padding: 9px 2px; font-size: 12.5px;
}
.ov-th {
    color: var(--text-muted); font-size: 10.5px;
    padding-bottom: 4px; border-bottom: 0.5px solid rgba(120,120,128,0.2);
}
.ov-row {
    width: 100%; border: none; background: none; cursor: pointer;
    font-family: inherit; color: var(--text-primary); text-align: left;
    border-bottom: 0.5px solid rgba(120,120,128,0.12);
    transition: background .12s;
}
.ov-row:last-of-type { border-bottom: none; }
.ov-row:active { background: rgba(120,120,128,0.1); }
.ov-stage { display: flex; align-items: center; gap: 7px; font-weight: 500; }
.ov-stage i { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.ov-stage em { font-style: normal; font-size: 10px; color: var(--text-muted); font-weight: 400; }
.ov-num { font-variant-numeric: tabular-nums; }
.ov-num-warn { color: #ba7517; font-weight: 600; }
.ov-pct { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--text-secondary); }
.ov-pct-bar {
    width: 32px; height: 4px; border-radius: 2px; flex-shrink: 0;
    background: rgba(120,120,128,0.18); overflow: hidden;
}
.ov-pct-bar b { display: block; height: 100%; border-radius: 2px; }
.ov-chev { color: var(--text-muted); font-size: 15px; text-align: right; }

.ov-taskbar {
    height: 8px; border-radius: 4px; overflow: hidden;
    background: rgba(120,120,128,0.16); margin: 4px 0 10px;
}
.ov-taskbar span {
    display: block; height: 100%;
    background: linear-gradient(90deg, #34C759, #0A84FF);
    border-radius: 4px;
}
.ov-taskmeta {
    display: flex; justify-content: space-between; gap: 10px;
    font-size: 12px; color: var(--text-secondary);
}
.ov-taskmeta b { color: var(--text-primary); font-weight: 600; }

.ov-recent-row {
    display: flex; align-items: center; gap: 10px; width: 100%;
    border: none; background: none; cursor: pointer; font-family: inherit;
    color: var(--text-primary); text-align: left;
    padding: 10px 2px; font-size: 13px;
    border-top: 0.5px solid rgba(120,120,128,0.14);
}
.ov-recent-row:first-of-type { border-top: none; }
.ov-recent-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ov-recent-prog { font-size: 11.5px; color: var(--text-secondary); font-variant-numeric: tabular-nums; }
.ov-recent-date { font-size: 11px; color: var(--text-muted); }

.ov-empty { text-align: center; padding: 56px 24px; }
.ov-empty-icon { font-size: 34px; }
.ov-empty-title { font-size: 15px; font-weight: 600; margin-top: 10px; }
.ov-empty-sub { font-size: 12px; color: var(--text-secondary); margin-top: 6px; }

/* 下钻浮层 */
.ov-badge {
    font-size: 11px; font-weight: 600; color: var(--c, var(--accent));
    border: 0.5px solid var(--c, var(--accent));
    border-radius: 10px; padding: 1px 8px; flex-shrink: 0;
}
.ov-stage-grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px;
}
.ov-stage-grid > div {
    background: var(--bg-tertiary); border-radius: 14px;
    padding: 10px 4px; text-align: center;
}
.ov-stage-grid b { display: block; font-size: 18px; font-weight: 600; }
.ov-stage-grid span { display: block; font-size: 10.5px; color: var(--text-secondary); margin-top: 2px; }
.ov-drill-note {
    text-align: center; font-size: 11px; color: var(--text-muted);
    margin: 10px 0 2px;
}
.ov-drill-item {
    background: var(--bg-tertiary); border-radius: 14px;
    padding: 12px 14px; margin-top: 10px; cursor: pointer;
    transition: transform .12s;
}
.ov-drill-item:active { transform: scale(.985); }
.ov-drill-head { display: flex; align-items: center; gap: 10px; }
.ov-drill-name {
    flex: 1; min-width: 0; font-size: 14px; font-weight: 600;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ov-drill-meta {
    display: flex; flex-wrap: wrap; gap: 4px 10px;
    font-size: 11px; color: var(--text-secondary); margin-top: 6px;
}
.ov-drill-actions { display: flex; justify-content: center; margin-top: 16px; }

@media (max-width: 600px) {
    .ov-hero { padding: 16px; }
    .ov-donut { width: 88px; height: 88px; }
    .ov-donut-hole { inset: 17px; }
    .ov-donut-hole b { font-size: 18px; }
    .ov-total b { font-size: 36px; }
    .ov-stage-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ===== 旧货清单（闲置待出） ===== */
.og-stats {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px; padding: 14px 10px; margin-bottom: 10px; text-align: center;
    border-radius: 16px;
}
.og-stats b { display: block; font-size: 19px; font-weight: 650; }
.og-stats span { display: block; font-size: 10.5px; color: var(--text-secondary); margin-top: 2px; }

.og-money {
    display: flex; gap: 10px; padding: 12px 16px; margin-bottom: 10px;
    border-radius: 16px;
}
.og-money > div { flex: 1; min-width: 0; }
.og-money span { display: block; font-size: 10.5px; color: var(--text-secondary); }
.og-money b { font-size: 16px; font-weight: 650; color: #ba7517; }
.og-money b.ok { color: #1d9e75; }

.og-add {
    display: flex; gap: 8px; flex-wrap: wrap; align-items: center;
    padding: 12px 14px; margin-bottom: 12px; border-radius: 16px;
}
.og-add .sk-input { flex: 1 1 40%; min-width: 90px; }
.og-add .og-price-in { flex: 0 1 76px; min-width: 66px; }
.og-add .sk-btn { flex: 0 0 auto; }

.og-list { display: flex; flex-direction: column; gap: 8px; }
.og-card {
    background: var(--bg-tertiary); border-radius: 14px;
    padding: 11px 13px; border-left: 3px solid rgba(120,120,128,0.35);
}
.og-card.pending { border-left-color: #ff9f0a; }
.og-card.listed { border-left-color: #0a84ff; }
.og-card.sold { border-left-color: #34c759; opacity: .78; }
.og-head { display: flex; align-items: center; gap: 8px; }
.og-name {
    flex: 1; min-width: 0; font-size: 14px; font-weight: 600;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.og-badge {
    font-size: 10.5px; padding: 1px 8px; border-radius: 8px; flex-shrink: 0;
    background: rgba(120,120,128,0.14); color: var(--text-secondary);
}
.og-badge.st-pending { background: rgba(255,159,10,0.14); color: #ba7517; }
.og-badge.st-listed { background: rgba(10,132,255,0.12); color: #185fa5; }
.og-badge.st-sold { background: rgba(52,199,89,0.14); color: #248a3d; }
.og-meta {
    display: flex; flex-wrap: wrap; gap: 4px 10px;
    font-size: 11px; color: var(--text-secondary); margin-top: 5px;
}
.og-price { color: var(--text-primary); font-weight: 600; }
.og-acts { display: flex; gap: 8px; justify-content: flex-end; margin-top: 8px; }
.og-acts .sk-mini-btn.danger { background: rgba(255,59,48,0.1); color: #a32d2d; }

/* ===== 清单表格通用（欲望/日常/旧货） ===== */
.lt-table { border-radius: 16px; overflow: hidden; }
.lt-head {
    display: grid; gap: 6px; align-items: center;
    padding: 9px 12px; font-size: 11px; color: var(--text-secondary);
    border-bottom: 0.5px solid rgba(120,120,128,0.25);
}
.lt-row {
    display: grid; gap: 6px; align-items: center;
    padding: 10px 12px; font-size: 12.5px;
    border-bottom: 0.5px solid rgba(120,120,128,0.14);
    cursor: pointer;
}
.lt-row:last-child { border-bottom: none; }
.lt-row:active { background: rgba(120,120,128,0.08); }
.lt-name {
    min-width: 0; font-weight: 500;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.lt-name.is-done { text-decoration: line-through; opacity: .55; }
.lt-cell {
    font-size: 11px; color: var(--text-secondary);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.lt-head .center, .lt-cell.center { text-align: center; }
.lt-group {
    display: flex; align-items: center; gap: 6px;
    padding: 8px 12px 5px; font-size: 11px; font-weight: 600;
    color: var(--text-secondary); background: rgba(120,120,128,0.07);
}
.lt-group em { font-style: normal; font-weight: 400; opacity: .7; }
.sk-rank { display: inline-block; }

/* ===== 清单里的规格副标题 / 规格格（拆解后结构化展示） ===== */
.lt-name { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.lt-sub {
    font-style: normal; font-weight: 400; font-size: 10.5px;
    color: var(--text-secondary);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.spec-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.spec-grid > div {
    background: rgba(120,120,128,0.09); border-radius: 10px; padding: 7px 10px;
    min-width: 0;
}
.spec-grid span { display: block; font-size: 10.5px; color: var(--text-secondary); margin-bottom: 1px; }
.spec-grid b { font-size: 13px; font-weight: 600; }
.spec-grid .spec-todo { background: rgba(255,159,10,0.12); }
.spec-grid .spec-todo b { color: #ba7517; }
.tk-doing.raw { opacity: .7; font-size: 12px; }

/* ===== 补充者徽标（AI / 我 / 待补） ===== */
.sk-by {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 26px; height: 15px; padding: 0 5px; margin-left: 6px;
  border-radius: 999px; font-size: 9.5px; font-weight: 700; line-height: 1;
  letter-spacing: .02em; vertical-align: middle; flex: none;
  background: rgba(120,120,128,0.14); color: var(--text-secondary);
}
.sk-by.ai { background: rgba(88,86,214,0.14); color: #5856D6; }
.sk-by.user { background: rgba(52,199,89,0.14); color: #248A3D; }
.sk-by.init { background: rgba(142,142,147,0.16); color: #6C6C70; }
.sk-by.derived { background: rgba(255,149,0,0.16); color: #B35C00; }
.sk-by.import, .sk-by.legacy { background: rgba(90,120,160,0.16); color: #47617F; }
.sk-by.empty, .sk-by.todo { background: rgba(255,59,48,0.12); color: #C7362B; }
.sk-by-hint { font-size: 9.5px; font-weight: 400; color: var(--text-tertiary, var(--text-secondary)); opacity: .75; }

/* ===== 项目画像 6 维 ===== */
.sk-pf { display: flex; flex-direction: column; gap: 1px; border-radius: 12px; overflow: hidden; }
.sk-pf-row {
  display: grid; grid-template-columns: 58px 1fr auto; gap: 8px; align-items: start;
  padding: 9px 11px; background: rgba(120,120,128,0.07);
}
.sk-pf-row.empty { opacity: .55; }
.sk-pf-label { font-size: 11px; color: var(--text-secondary); padding-top: 1px; }
.sk-pf-val { font-size: 12.5px; line-height: 1.55; color: var(--text-primary); }
.sk-pf-row .sk-by { margin-left: 0; margin-top: 2px; }
