/* ==========================================================================
   二手车估价计算器 used-car-valuation
   设计系统：金属漆评估单（冷银灰底 / 深靛蓝 / 荧光青柠 / 警示橙）
   浅色为默认且为完整设计，深色用 :root[data-theme="dark"] 整套覆盖。
   变量作用域：.ucv-page 及其浮层（.ucv-modal / .ucv-sheet / .ucv-toast）一起声明，
   否则浮层取不到变量会失去底色、圆角与阴影。
   ========================================================================== */

.ucv-page,
.ucv-modal,
.ucv-sheet,
.ucv-toast {
    --ucv-bg: #eceff4;
    --ucv-bg2: #e2e7ee;
    --ucv-card: #ffffff;
    --ucv-card2: #f6f8fb;
    --ucv-ink: #16202c;
    --ucv-ink2: #5b6b7c;
    --ucv-ink3: #8c9aa9;
    --ucv-line: #d6dee7;
    --ucv-line2: #e6ecf2;
    --ucv-accent: #16324f;
    --ucv-accent2: #24537e;
    --ucv-lime: #a4e03a;
    --ucv-lime-d: #6ea810;
    --ucv-orange: #ff7a45;
    --ucv-orange-d: #d8541f;
    --ucv-blue: #2f7fd6;
    --ucv-shadow: 0 10px 30px rgba(22, 32, 44, .08);
    --ucv-shadow-s: 0 3px 12px rgba(22, 32, 44, .07);
    --ucv-mono: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}

:root[data-theme="dark"] .ucv-page,
:root[data-theme="dark"] .ucv-modal,
:root[data-theme="dark"] .ucv-sheet,
:root[data-theme="dark"] .ucv-toast {
    --ucv-bg: #0d1319;
    --ucv-bg2: #121a23;
    --ucv-card: #151f29;
    --ucv-card2: #1b2734;
    --ucv-ink: #e4ecf4;
    --ucv-ink2: #9cadbe;
    --ucv-ink3: #6c7f92;
    --ucv-line: #25323f;
    --ucv-line2: #1e2934;
    --ucv-accent: #8ab8ff;
    --ucv-accent2: #a9cdff;
    --ucv-lime: #b6f24a;
    --ucv-lime-d: #93cf24;
    --ucv-orange: #ff9b6a;
    --ucv-orange-d: #ffb389;
    --ucv-blue: #6fb0ff;
    --ucv-shadow: 0 10px 30px rgba(0, 0, 0, .38);
    --ucv-shadow-s: 0 3px 12px rgba(0, 0, 0, .32);
}

/* ---------- 容器 ---------- */
.ucv-page {
    background: var(--ucv-bg);
    color: var(--ucv-ink);
    font-size: 15px;
    line-height: 1.85;
    padding-bottom: 56px;
    -webkit-font-smoothing: antialiased;
}

.ucv-wrap {
    max-width: 1240px;
    margin: 0 auto;
    padding: 18px 16px 0;
}

/* ---------- 面包屑 ---------- */
.ucv-page .detail-breadcrumb {
    font-size: 13px;
    color: var(--ucv-ink2);
    margin-bottom: 16px;
}
.ucv-page .detail-breadcrumb a { color: var(--ucv-ink2); text-decoration: none; }
.ucv-page .detail-breadcrumb a:hover { color: var(--ucv-accent2); }
.ucv-page .detail-breadcrumb .current { color: var(--ucv-ink); font-weight: 700; }
.ucv-page .detail-breadcrumb .sep { color: var(--ucv-ink3); margin: 0 6px; }

/* ==========================================================================
   首屏 Hero
   ========================================================================== */
.ucv-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr);
    gap: 22px;
    background: linear-gradient(135deg, var(--ucv-card) 0%, var(--ucv-card2) 100%);
    border: 1px solid var(--ucv-line);
    border-radius: 20px;
    padding: 30px 30px 26px;
    box-shadow: var(--ucv-shadow);
    position: relative;
    overflow: hidden;
}
.ucv-hero::before {
    content: "";
    position: absolute;
    right: -70px;
    top: -70px;
    width: 240px;
    height: 240px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(164, 224, 58, .22) 0%, rgba(164, 224, 58, 0) 70%);
    pointer-events: none;
}
.ucv-hero::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 5px;
    background: linear-gradient(180deg, var(--ucv-lime) 0%, var(--ucv-accent) 100%);
}

.ucv-hero-copy { position: relative; z-index: 1; }

.ucv-kicker {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .4px;
    color: var(--ucv-accent);
    background: rgba(164, 224, 58, .16);
    border: 1px solid rgba(164, 224, 58, .45);
    border-radius: 999px;
    padding: 4px 13px;
    margin-bottom: 14px;
}
:root[data-theme="dark"] .ucv-kicker {
    color: var(--ucv-lime);
    background: rgba(182, 242, 74, .12);
    border-color: rgba(182, 242, 74, .3);
}

.ucv-hero h1 {
    font-size: 30px;
    line-height: 1.42;
    margin: 0 0 12px;
    font-weight: 800;
    letter-spacing: -.4px;
    color: var(--ucv-ink);
}
.ucv-sub {
    font-size: 14.5px;
    line-height: 1.95;
    color: var(--ucv-ink2);
    margin: 0 0 18px;
}
.ucv-sub b { color: var(--ucv-ink); font-weight: 700; }

.ucv-hero-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}
.ucv-fact {
    background: var(--ucv-card);
    border: 1px solid var(--ucv-line);
    border-radius: 12px;
    padding: 11px 13px;
    box-shadow: var(--ucv-shadow-s);
}
.ucv-fact b {
    display: block;
    font-size: 20px;
    font-weight: 800;
    color: var(--ucv-ink);
    line-height: 1.35;
    font-family: var(--ucv-mono);
    letter-spacing: -.5px;
}
.ucv-fact span { font-size: 12px; color: var(--ucv-ink3); }
.ucv-fact.hot {
    border-color: rgba(164, 224, 58, .6);
    background: linear-gradient(140deg, rgba(164, 224, 58, .16), rgba(164, 224, 58, .04));
}
.ucv-fact.hot b { color: var(--ucv-lime-d); }
:root[data-theme="dark"] .ucv-fact.hot b { color: var(--ucv-lime); }

/* ---------- 价格带刻度尺 ---------- */
.ucv-band-box {
    position: relative;
    z-index: 1;
    background: var(--ucv-card);
    border: 1px solid var(--ucv-line);
    border-radius: 14px;
    padding: 16px 18px 14px;
    box-shadow: var(--ucv-shadow-s);
    align-self: start;
}
.ucv-band-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 26px;
}
.ucv-band-head b { font-size: 15px; font-weight: 800; }
.ucv-band-head span { font-size: 12px; color: var(--ucv-ink3); }

.ucv-band-track {
    position: relative;
    display: flex;
    height: 16px;
    border-radius: 999px;
    overflow: visible;
    background: var(--ucv-bg2);
    box-shadow: inset 0 1px 3px rgba(22, 32, 44, .1);
}
.ucv-band-seg { height: 100%; }
.ucv-band-seg:first-child { border-radius: 999px 0 0 999px; }
.ucv-band-seg:last-of-type { border-radius: 0 999px 999px 0; }
.ucv-band-seg--dealer { background: #b9c4d1; }
.ucv-band-seg--platform { background: #7fb0e8; }
.ucv-band-seg--deal { background: var(--ucv-lime); }
.ucv-band-seg--list { background: var(--ucv-orange); }
:root[data-theme="dark"] .ucv-band-seg--dealer { background: #3d4c5c; }
:root[data-theme="dark"] .ucv-band-seg--platform { background: #3d6ea8; }
:root[data-theme="dark"] .ucv-band-seg--list { background: #b85730; }

.ucv-band-marker {
    position: absolute;
    top: -25px;
    transform: translateX(-50%);
    text-align: center;
    white-space: nowrap;
    z-index: 3;
}
.ucv-band-marker i {
    display: block;
    width: 2px;
    height: 26px;
    background: var(--ucv-orange-d);
    margin: 0 auto;
    border-radius: 2px;
}
.ucv-band-marker span {
    display: inline-block;
    font-size: 11.5px;
    font-weight: 700;
    color: #fff;
    background: var(--ucv-orange-d);
    border-radius: 5px;
    padding: 1px 7px;
}
.ucv-band-marker[hidden] { display: none; }

.ucv-band-scale {
    display: flex;
    justify-content: space-between;
    margin-top: 9px;
    font-size: 11.5px;
    color: var(--ucv-ink3);
    font-family: var(--ucv-mono);
}

.ucv-band-legend {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px 12px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px dashed var(--ucv-line);
    font-size: 12px;
    color: var(--ucv-ink2);
}
.ucv-band-legend span { display: flex; align-items: center; gap: 6px; }
.ucv-dot { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }
.ucv-dot--dealer { background: #b9c4d1; }
.ucv-dot--platform { background: #7fb0e8; }
.ucv-dot--deal { background: var(--ucv-lime); }
.ucv-dot--list { background: var(--ucv-orange); }
:root[data-theme="dark"] .ucv-dot--dealer { background: #3d4c5c; }
:root[data-theme="dark"] .ucv-dot--platform { background: #3d6ea8; }
:root[data-theme="dark"] .ucv-dot--list { background: #b85730; }

/* ==========================================================================
   快捷条
   ========================================================================== */
.ucv-quick {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 14px 0 18px;
    background: var(--ucv-card);
    border: 1px solid var(--ucv-line);
    border-radius: 14px;
    padding: 11px 14px;
    box-shadow: var(--ucv-shadow-s);
}
.ucv-quick-label { font-size: 13px; color: var(--ucv-ink3); font-weight: 600; margin-right: 2px; }
.ucv-quick-btn {
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    color: var(--ucv-ink);
    background: var(--ucv-card2);
    border: 1px solid var(--ucv-line);
    border-radius: 9px;
    padding: 6px 13px;
    cursor: pointer;
    transition: .18s;
    white-space: nowrap;
}
.ucv-quick-btn:hover { border-color: var(--ucv-accent2); color: var(--ucv-accent2); }
.ucv-quick-btn--main {
    margin-left: auto;
    background: var(--ucv-accent);
    border-color: var(--ucv-accent);
    color: #fff;
    padding: 7px 20px;
    box-shadow: 0 4px 14px rgba(22, 50, 79, .22);
}
.ucv-quick-btn--main:hover { color: #fff; filter: brightness(1.12); }
:root[data-theme="dark"] .ucv-quick-btn--main { background: var(--ucv-accent); color: #0d1319; }

/* ==========================================================================
   主体两栏
   ========================================================================== */
.ucv-body {
    display: grid;
    grid-template-columns: 336px minmax(0, 1fr);
    gap: 20px;
    align-items: start;
}

/* ---------- 参数评估单 ---------- */
.ucv-panel {
    background: var(--ucv-card);
    border: 1px solid var(--ucv-line);
    border-radius: 16px;
    padding: 18px 18px 16px;
    box-shadow: var(--ucv-shadow);
    position: sticky;
    top: 14px;
}
.ucv-panel h2 {
    font-size: 17px;
    font-weight: 800;
    margin: 0 0 4px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.ucv-panel h2::before {
    content: "";
    width: 4px;
    height: 17px;
    border-radius: 3px;
    background: linear-gradient(180deg, var(--ucv-lime), var(--ucv-accent));
}
.ucv-hint { font-size: 12.5px; color: var(--ucv-ink3); margin: 0 0 14px; line-height: 1.75; }

.ucv-field { margin-bottom: 13px; }
.ucv-field--row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ucv-label {
    font-size: 12.5px;
    font-weight: 700;
    color: var(--ucv-ink2);
    margin-bottom: 6px;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
}
.ucv-label em {
    font-style: normal;
    font-size: 11px;
    font-weight: 500;
    color: var(--ucv-ink3);
    text-align: right;
}

.ucv-input,
.ucv-select {
    width: 100%;
    font: inherit;
    font-size: 14px;
    color: var(--ucv-ink);
    background: var(--ucv-card2);
    border: 1px solid var(--ucv-line);
    border-radius: 9px;
    padding: 9px 11px;
    transition: .18s;
    box-sizing: border-box;
}
.ucv-select { cursor: pointer; appearance: none; padding-right: 30px;
    background-image: linear-gradient(45deg, transparent 50%, var(--ucv-ink3) 50%),
                      linear-gradient(135deg, var(--ucv-ink3) 50%, transparent 50%);
    background-position: calc(100% - 16px) 50%, calc(100% - 11px) 50%;
    background-size: 5px 5px, 5px 5px;
    background-repeat: no-repeat;
}
.ucv-input:focus,
.ucv-select:focus {
    outline: none;
    border-color: var(--ucv-accent2);
    box-shadow: 0 0 0 3px rgba(47, 127, 214, .14);
}

.ucv-range {
    width: 100%;
    margin-top: 9px;
    accent-color: var(--ucv-lime-d);
    height: 4px;
}
:root[data-theme="dark"] .ucv-range { accent-color: var(--ucv-lime); }

.ucv-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-top: 16px;
}
.ucv-btn {
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    color: var(--ucv-ink);
    background: var(--ucv-card2);
    border: 1px solid var(--ucv-line);
    border-radius: 9px;
    padding: 9px 10px;
    cursor: pointer;
    transition: .18s;
}
.ucv-btn:hover { border-color: var(--ucv-accent2); color: var(--ucv-accent2); }
.ucv-btn--main {
    grid-column: 1 / -1;
    background: linear-gradient(135deg, var(--ucv-accent2), var(--ucv-accent));
    border-color: var(--ucv-accent);
    color: #fff;
    font-size: 14px;
    padding: 11px 10px;
    box-shadow: 0 5px 16px rgba(22, 50, 79, .22);
}
.ucv-btn--main:hover { color: #fff; filter: brightness(1.12); }
:root[data-theme="dark"] .ucv-btn--main { color: #0d1319; }

.ucv-err {
    margin: 12px 0 0;
    font-size: 12.5px;
    font-weight: 700;
    color: #b3300f;
    background: rgba(255, 122, 69, .14);
    border: 1px solid rgba(255, 122, 69, .42);
    border-radius: 8px;
    padding: 8px 11px;
    line-height: 1.7;
}
.ucv-err[hidden] { display: none; }

/* ==========================================================================
   报价判定卡
   ========================================================================== */
.ucv-quote {
    background: var(--ucv-card);
    border: 1px solid var(--ucv-line);
    border-left: 5px solid var(--ucv-ink3);
    border-radius: 14px;
    padding: 16px 18px;
    margin-bottom: 16px;
    box-shadow: var(--ucv-shadow-s);
}
.ucv-quote.lv-low { border-left-color: var(--ucv-orange); }
.ucv-quote.lv-ok { border-left-color: var(--ucv-lime-d); }
.ucv-quote.lv-high { border-left-color: var(--ucv-blue); }

.ucv-quote-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}
.ucv-quote-head h2 { font-size: 17px; font-weight: 800; margin: 0; }
.ucv-tag {
    font-size: 12px;
    font-weight: 800;
    padding: 3px 12px;
    border-radius: 999px;
    background: var(--ucv-bg2);
    color: var(--ucv-ink2);
    white-space: nowrap;
}
.ucv-quote.lv-low .ucv-tag { background: rgba(255, 122, 69, .18); color: var(--ucv-orange-d); }
.ucv-quote.lv-ok .ucv-tag { background: rgba(164, 224, 58, .2); color: var(--ucv-lime-d); }
.ucv-quote.lv-high .ucv-tag { background: rgba(47, 127, 214, .16); color: var(--ucv-blue); }
:root[data-theme="dark"] .ucv-quote.lv-low .ucv-tag { color: var(--ucv-orange); }
:root[data-theme="dark"] .ucv-quote.lv-ok .ucv-tag { color: var(--ucv-lime); }

.ucv-quote-diff { font-size: 13.5px; color: var(--ucv-ink2); margin: 0 0 10px; line-height: 1.9; }
.ucv-quote-diff b { color: var(--ucv-ink); font-weight: 800; font-family: var(--ucv-mono); }

.ucv-quote-list { margin: 0; padding-left: 18px; font-size: 13px; color: var(--ucv-ink2); line-height: 1.9; }
.ucv-quote-list li { margin-bottom: 4px; }
.ucv-quote-list li b { color: var(--ucv-ink); }

/* ==========================================================================
   评估报告
   ========================================================================== */
.ucv-report {
    background: var(--ucv-card);
    border: 1px solid var(--ucv-line);
    border-radius: 16px;
    padding: 20px 22px;
    margin-bottom: 16px;
    box-shadow: var(--ucv-shadow);
}
.ucv-report h2,
.ucv-curve h2,
.ucv-advice h2,
.ucv-years h2,
.ucv-compare h2,
.ucv-lib h2 {
    font-size: 18px;
    font-weight: 800;
    margin: 0 0 14px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.ucv-report h2::before,
.ucv-curve h2::before,
.ucv-advice h2::before,
.ucv-years h2::before,
.ucv-compare h2::before,
.ucv-lib h2::before {
    content: "";
    width: 4px;
    height: 18px;
    border-radius: 3px;
    background: linear-gradient(180deg, var(--ucv-lime), var(--ucv-accent));
}

.ucv-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}
.ucv-kpi {
    background: var(--ucv-card2);
    border: 1px solid var(--ucv-line2);
    border-radius: 11px;
    padding: 11px 13px;
}
.ucv-kpi span { display: block; font-size: 11.5px; color: var(--ucv-ink3); margin-bottom: 3px; }
.ucv-kpi b {
    display: block;
    font-size: 17px;
    font-weight: 800;
    font-family: var(--ucv-mono);
    color: var(--ucv-ink);
    line-height: 1.4;
    letter-spacing: -.4px;
}
.ucv-kpi em { font-style: normal; font-size: 11px; color: var(--ucv-ink3); }

.ucv-scrap {
    margin: 14px 0 0;
    font-size: 12.5px;
    line-height: 1.85;
    color: var(--ucv-orange-d);
    background: rgba(255, 122, 69, .12);
    border: 1px solid rgba(255, 122, 69, .38);
    border-radius: 9px;
    padding: 9px 12px;
}
.ucv-scrap[hidden] { display: none; }
:root[data-theme="dark"] .ucv-scrap { color: var(--ucv-orange); }

/* ==========================================================================
   折旧曲线
   ========================================================================== */
.ucv-curve {
    background: var(--ucv-card);
    border: 1px solid var(--ucv-line);
    border-radius: 16px;
    padding: 20px 22px;
    margin-bottom: 16px;
    box-shadow: var(--ucv-shadow-s);
}
.ucv-curve-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.ucv-curve-box { overflow-x: auto; }
.ucv-curve-box svg { display: block; width: 100%; min-width: 520px; height: auto; }
.ucv-curve-note { font-size: 12.5px; color: var(--ucv-ink2); margin: 10px 0 0; line-height: 1.85; }
.ucv-curve-note b { color: var(--ucv-ink); }

/* ==========================================================================
   议价建议
   ========================================================================== */
.ucv-advice {
    background: var(--ucv-card);
    border: 1px solid var(--ucv-line);
    border-radius: 16px;
    padding: 20px 22px;
    margin-bottom: 16px;
    box-shadow: var(--ucv-shadow-s);
}
.ucv-advice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ucv-adv {
    background: var(--ucv-card2);
    border: 1px solid var(--ucv-line2);
    border-left: 4px solid var(--ucv-accent2);
    border-radius: 11px;
    padding: 12px 14px;
}
.ucv-adv.t-lime { border-left-color: var(--ucv-lime-d); }
.ucv-adv.t-orange { border-left-color: var(--ucv-orange); }
.ucv-adv.t-blue { border-left-color: var(--ucv-blue); }
.ucv-adv h3 { font-size: 14px; font-weight: 800; margin: 0 0 5px; color: var(--ucv-ink); }
.ucv-adv p { font-size: 13px; color: var(--ucv-ink2); margin: 0; line-height: 1.9; }
.ucv-adv p b { color: var(--ucv-ink); font-family: var(--ucv-mono); }

/* ==========================================================================
   表格
   ========================================================================== */
.ucv-table-scroll { overflow-x: auto; }
.ucv-year-table,
.ucv-cmp-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    min-width: 560px;
}
.ucv-year-table th,
.ucv-cmp-table th {
    background: var(--ucv-bg2);
    color: var(--ucv-ink2);
    font-size: 12px;
    font-weight: 700;
    text-align: left;
    padding: 9px 11px;
    border-bottom: 2px solid var(--ucv-line);
    white-space: nowrap;
}
.ucv-year-table td,
.ucv-cmp-table td {
    padding: 8px 11px;
    border-bottom: 1px solid var(--ucv-line2);
    color: var(--ucv-ink2);
    vertical-align: top;
}
.ucv-year-table .num,
.ucv-cmp-table .num { text-align: right; font-family: var(--ucv-mono); white-space: nowrap; }
.ucv-year-table tbody tr:hover,
.ucv-cmp-table tbody tr:hover { background: var(--ucv-card2); }
.ucv-row-now { background: rgba(164, 224, 58, .14) !important; }
.ucv-row-now td { color: var(--ucv-ink); font-weight: 700; }
:root[data-theme="dark"] .ucv-row-now { background: rgba(182, 242, 74, .1) !important; }
.ucv-cmp-table .best { color: var(--ucv-lime-d); font-weight: 800; }
:root[data-theme="dark"] .ucv-cmp-table .best { color: var(--ucv-lime); }

/* ==========================================================================
   多方案对比
   ========================================================================== */
.ucv-compare,
.ucv-lib {
    background: var(--ucv-card);
    border: 1px solid var(--ucv-line);
    border-radius: 16px;
    padding: 20px 22px;
    margin-top: 16px;
    box-shadow: var(--ucv-shadow-s);
}
.ucv-compare-head,
.ucv-lib-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; }

.ucv-cmp-list { display: grid; gap: 9px; }
.ucv-cmp-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 150px 132px 34px;
    gap: 9px;
    align-items: center;
    background: var(--ucv-card2);
    border: 1px solid var(--ucv-line2);
    border-radius: 10px;
    padding: 9px 11px;
}
.ucv-cmp-row input,
.ucv-cmp-row select {
    font: inherit;
    font-size: 13px;
    color: var(--ucv-ink);
    background: var(--ucv-card);
    border: 1px solid var(--ucv-line);
    border-radius: 8px;
    padding: 7px 10px;
    width: 100%;
    box-sizing: border-box;
}
.ucv-cmp-row input:focus,
.ucv-cmp-row select:focus { outline: none; border-color: var(--ucv-accent2); }
.ucv-cmp-del {
    font: inherit;
    font-size: 15px;
    line-height: 1;
    color: var(--ucv-ink3);
    background: transparent;
    border: 1px solid var(--ucv-line);
    border-radius: 8px;
    width: 30px;
    height: 30px;
    cursor: pointer;
}
.ucv-cmp-del:hover { color: var(--ucv-orange-d); border-color: var(--ucv-orange); }

/* ==========================================================================
   车型库
   ========================================================================== */
.ucv-lib-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(168px, 1fr));
    gap: 9px;
}
.ucv-lib-item {
    text-align: left;
    font: inherit;
    background: var(--ucv-card2);
    border: 1px solid var(--ucv-line2);
    border-radius: 10px;
    padding: 9px 11px;
    cursor: pointer;
    transition: .18s;
}
.ucv-lib-item:hover { border-color: var(--ucv-lime-d); background: rgba(164, 224, 58, .1); }
.ucv-lib-item b { display: block; font-size: 13px; font-weight: 800; color: var(--ucv-ink); line-height: 1.5; }
.ucv-lib-item span { display: block; font-size: 11.5px; color: var(--ucv-ink3); }
.ucv-lib-item em { font-style: normal; font-size: 11px; color: var(--ucv-lime-d); font-weight: 700; }
:root[data-theme="dark"] .ucv-lib-item em { color: var(--ucv-lime); }

/* ==========================================================================
   浮层
   ========================================================================== */
.ucv-modal {
    position: fixed;
    inset: 0;
    background: rgba(13, 19, 25, .58);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
    z-index: 9999;
}
.ucv-modal[hidden] { display: none !important; }
.ucv-sheet {
    background: var(--ucv-card);
    border: 1px solid var(--ucv-line);
    border-radius: 16px;
    padding: 22px 24px;
    max-width: 520px;
    width: 100%;
    box-shadow: var(--ucv-shadow);
}
.ucv-sheet h3 { font-size: 17px; font-weight: 800; margin: 0 0 8px; }
.ucv-sheet p { font-size: 13px; color: var(--ucv-ink2); margin: 0 0 12px; line-height: 1.85; }
.ucv-sheet-code {
    display: block;
    font-family: var(--ucv-mono);
    font-size: 12px;
    background: var(--ucv-card2);
    border: 1px solid var(--ucv-line);
    border-radius: 9px;
    padding: 10px 12px;
    word-break: break-all;
    color: var(--ucv-ink);
    line-height: 1.7;
}
.ucv-sheet-actions { margin-top: 14px; display: flex; justify-content: flex-end; }
.ucv-sheet-actions .ucv-btn { padding: 8px 20px; }

.ucv-toast {
    position: fixed;
    left: 50%;
    bottom: 34px;
    transform: translateX(-50%) translateY(14px);
    background: var(--ucv-accent);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    padding: 9px 18px;
    border-radius: 999px;
    opacity: 0;
    pointer-events: none;
    transition: .25s;
    z-index: 10000;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .22);
}
.ucv-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
:root[data-theme="dark"] .ucv-toast { color: #0d1319; }

/* ==========================================================================
   响应式
   ========================================================================== */
@media (max-width: 1080px) {
    .ucv-hero { grid-template-columns: minmax(0, 1fr); }
    .ucv-body { grid-template-columns: minmax(0, 1fr); }
    .ucv-panel { position: static; }
    .ucv-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
    .ucv-page { font-size: 14.5px; }
    .ucv-wrap { padding: 14px 12px 0; }
    .ucv-hero { padding: 22px 16px 20px; border-radius: 16px; }
    .ucv-hero h1 { font-size: 23px; }
    .ucv-sub { font-size: 13.5px; line-height: 1.9; }
    .ucv-hero-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
    .ucv-fact { padding: 9px 9px; }
    .ucv-fact b { font-size: 15px; }
    .ucv-fact span { font-size: 11px; }
    .ucv-quick-btn--main { margin-left: 0; width: 100%; }
    .ucv-advice-grid { grid-template-columns: minmax(0, 1fr); }
    .ucv-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ucv-cmp-row { grid-template-columns: minmax(0, 1fr) 110px 110px 32px; }
    .ucv-field--row { grid-template-columns: 1fr 1fr; }
    .ucv-report, .ucv-curve, .ucv-advice, .ucv-compare, .ucv-lib { padding: 16px 14px; border-radius: 14px; }
}
@media (max-width: 460px) {
    .ucv-hero-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ucv-band-legend { grid-template-columns: minmax(0, 1fr); }
    .ucv-cmp-row { grid-template-columns: minmax(0, 1fr) 30px; grid-auto-rows: min-content; }
    .ucv-cmp-row input, .ucv-cmp-row select { grid-column: 1 / -1; }
}

/* ==========================================================================
   打印
   ========================================================================== */
@media print {
    .ucv-quick, .ucv-actions, .ucv-cmp-list, .ucv-lib, .ucv-curve-note,
    .ucv-toast, .ucv-modal, .ucv-page .detail-breadcrumb { display: none !important; }
    .ucv-page { background: #fff; color: #000; padding: 0; }
    .ucv-hero, .ucv-panel, .ucv-report, .ucv-curve, .ucv-advice, .ucv-quote, .ucv-compare, .ucv-years {
        box-shadow: none; break-inside: avoid; page-break-inside: avoid;
    }
    .ucv-body { grid-template-columns: minmax(0, 1fr); }
    .ucv-panel { position: static; }
}
