/* ==========================================================================
   电器待机功耗与年电费计算器 —— 专属样式（可增删设备清单 + 排行刺客）
   依赖 biz-kit.css v2 的变量与骨架
   ========================================================================== */

/* 面板内：设备行清单 */
.sp-row {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr) 26px;
    gap: 8px;
    align-items: center;
    margin-top: 8px;
}

.sp-row-head {
    margin-top: 12px;
    padding: 0 2px;
    font-family: var(--bk-mono);
    font-size: 9.5px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--p-ink3);
    font-weight: 700;
}

.sp-row-head span:nth-child(2)::after { content: " (W)"; }
.sp-row-head span:nth-child(3)::after { content: " (h/天)"; }

.sp-cell {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 0 9px;
    border: 1px solid var(--p-line);
    border-radius: 8px;
    background: var(--bk-card);
    transition: border-color .16s ease, box-shadow .16s ease;
}

.sp-cell:focus-within { border-color: var(--p-accent); box-shadow: 0 0 0 3px var(--bk-accent-soft); }

.sp-cell input,
.sp-cell select {
    width: 100%;
    min-width: 0;
    border: 0;
    outline: none;
    background: transparent;
    color: var(--p-ink);
    -webkit-text-fill-color: var(--p-ink);
    font: inherit;
    font-size: 12.5px;
    padding: 6px 0;
}

.sp-cell input { font-family: var(--bk-mono); font-variant-numeric: tabular-nums; }

.sp-cell select {
    font-family: var(--bk-mono);
    font-size: 12px;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    background-image:
        linear-gradient(45deg, transparent 50%, var(--p-ink3) 50%),
        linear-gradient(135deg, var(--p-ink3) 50%, transparent 50%);
    background-position: calc(100% - 10px) calc(50% + 1px), calc(100% - 6px) calc(50% + 1px);
    background-size: 4px 4px, 4px 4px;
    background-repeat: no-repeat;
    padding-right: 16px;
}

.sp-cell select option { background: var(--bk-card); color: var(--bk-ink); }

.sp-del {
    border: 0;
    background: transparent;
    color: var(--p-ink3);
    font-family: var(--bk-mono);
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
    padding: 5px;
    border-radius: 6px;
    transition: color .16s ease, background .16s ease;
}

.sp-del:hover { color: var(--bk-warm); background: var(--bk-warm-soft); }

.sp-add {
    margin-top: 10px;
    width: 100%;
    border: 1px dashed var(--p-line);
    border-radius: 8px;
    background: transparent;
    color: var(--p-ink3);
    font: inherit;
    font-size: 12.5px;
    padding: 8px;
    cursor: pointer;
    transition: color .16s ease, border-color .16s ease;
}

.sp-add:hover { color: var(--p-accent); border-color: var(--p-accent); }

.sp-price { margin-top: 12px; display: flex; justify-content: flex-end; }

.sp-price label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11.5px;
    color: var(--p-ink2);
}

.sp-price .bk-input { padding: 0 9px; }
.sp-price input { width: 70px; border: 0; outline: none; background: transparent; color: var(--p-ink); font-family: var(--bk-mono); font-size: 12.5px; padding: 5px 0; font-variant-numeric: tabular-nums; }

/* ---------- 排行 ---------- */
.sp-rank { display: grid; gap: 10px; margin-top: 4px; }

.sp-rank-item {
    display: grid;
    grid-template-columns: 34px 96px minmax(0, 1fr) 92px;
    gap: 12px;
    align-items: center;
    padding: 10px 12px;
    border: 1px solid var(--bk-line);
    border-radius: 10px;
    background: var(--bk-card);
    transition: border-color .16s ease, background .16s ease;
}

.sp-rank-item.is-killer {
    border-color: var(--bk-warm);
    background: var(--bk-warm-soft);
}

.sp-rank-no {
    display: inline-grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 9px;
    background: var(--bk-line2);
    font-family: var(--bk-mono);
    font-size: 12px;
    font-weight: 700;
    color: var(--bk-ink2);
}

.sp-rank-item.is-killer .sp-rank-no { background: var(--bk-warm); color: #fff; }

.sp-rank-name { font-size: 13px; font-weight: 600; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.sp-rank-name small {
    display: block;
    font-weight: 400;
    font-size: 10.5px;
    font-family: var(--bk-mono);
    color: var(--bk-ink3);
    margin-top: 1px;
}

.sp-rank-bar { height: 14px; border-radius: 999px; background: var(--bk-line2); overflow: hidden; }

.sp-rank-bar i {
    display: block;
    height: 100%;
    width: 0;
    border-radius: 999px;
    background: var(--bk-accent);
    transition: width .3s ease;
}

.sp-rank-item.is-killer .sp-rank-bar i { background: var(--bk-warm); }

.sp-rank-cost {
    text-align: right;
    font-family: var(--bk-mono);
    font-size: 13.5px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.sp-rank-item.is-killer .sp-rank-cost { color: var(--bk-warm); }

.sp-rank-cost small {
    display: block;
    font-size: 10px;
    font-weight: 400;
    color: var(--bk-ink3);
}

.sp-rank-empty {
    padding: 22px;
    text-align: center;
    font-size: 12.5px;
    color: var(--bk-ink3);
}

@media (max-width: 700px) {
    .sp-row { grid-template-columns: minmax(0, 1.3fr) minmax(0, .8fr) minmax(0, .8fr) 26px; gap: 6px; }
    .sp-rank-item { grid-template-columns: 28px 80px minmax(0, 1fr); }
    .sp-rank-cost { grid-column: 2 / -1; text-align: left; padding-left: 40px; }
}
