﻿/* FIB-4：四项输入 + 公式代入显示 + 三段刻度尺，与量表类页面区分 */

.fb-copy { min-width: 0; }
.fb-hl { color: var(--dk-accent); }

.fb-jump { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.fb-jump a {
    padding: 6px 12px; font-size: 12.5px; color: var(--dk-ink-2); text-decoration: none;
    border: 1px solid var(--dk-line); border-radius: 99px; background: var(--dk-surface);
    transition: color .14s, border-color .14s, background .14s;
}
.fb-jump a:hover { color: var(--dk-accent); border-color: var(--dk-accent-line); background: var(--dk-accent-soft); }

#fbCut, #fbFactor, #fbNext, #fbFaq { scroll-margin-top: 84px; }

.fb-tool { position: sticky; top: 82px; }

/* 输入 */
.fb-inputs {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 14px; padding: 14px 18px 4px;
}
.fb-field { display: grid; gap: 5px; min-width: 0; }
.fb-label { font-size: 12.5px; font-weight: 600; color: var(--dk-ink-2); }
.fb-box {
    display: flex; align-items: center; gap: 6px;
    height: 38px; padding: 0 10px;
    border: 1px solid var(--dk-line-strong); border-radius: 9px;
    background: var(--dk-surface);
    transition: border-color .15s, box-shadow .15s;
}
.fb-box:focus-within { border-color: var(--dk-accent); box-shadow: 0 0 0 3px var(--dk-accent-soft); }
.fb-box input {
    flex: 1; min-width: 0; height: 100%; padding: 0; border: 0; outline: none;
    background: transparent; color: var(--dk-ink);
    font-family: var(--dk-mono); font-size: 14px;
}
.fb-box input::placeholder { font-family: var(--dk-font); font-size: 12.5px; color: var(--dk-muted); }
.fb-box i { font-style: normal; font-size: 11px; color: var(--dk-muted); white-space: nowrap; }
.fb-field input[aria-invalid="true"] + i { color: var(--dk-err); }
.fb-err { font-style: normal; font-size: 11.5px; color: var(--dk-err); }

/* 公式代入 */
.fb-formula {
    margin: 12px 18px 0; padding: 10px 12px;
    border: 1px dashed var(--dk-line-strong); border-radius: 9px;
    background: var(--dk-surface-2);
    display: flex; gap: 8px; align-items: baseline;
}
.fb-formula-k {
    flex: none; font-size: 11px; color: var(--dk-muted);
    border: 1px solid var(--dk-line); border-radius: 5px; padding: 1px 5px;
}
.fb-formula code {
    font-family: var(--dk-mono); font-size: 12px; line-height: 1.7;
    color: var(--dk-ink-2); word-break: break-word;
}

/* 刻度尺 */
.fb-gauge { position: relative; padding: 16px 18px 4px; }
.fb-zones { display: flex; gap: 2px; height: 10px; }
.fb-zones i { border-radius: 3px; }
.z-low { background: #22c55e; }
.z-mid { background: #f59e0b; }
.z-high { background: #dc2626; }

.fb-pin {
    position: absolute; top: 9px; width: 3px; height: 24px;
    left: 18px; height: 18px; top: 11px; border-radius: 2px;
    background: var(--dk-ink); box-shadow: 0 0 0 2px var(--dk-surface);
    transform: translateX(-1px);
    opacity: 0; transition: left .22s ease, opacity .18s;
}
.fb-pin.is-on { opacity: 1; }

.fb-ticks {
    display: flex; justify-content: space-between; margin: 7px 0 0;
    font-family: var(--dk-mono); font-size: 10.5px; color: var(--dk-muted);
}

/* 结果 */
.fb-result {
    display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 16px; align-items: center;
    padding: 14px 18px;
    border-top: 1px solid var(--dk-line);
    background: linear-gradient(180deg, var(--dk-surface-2), var(--dk-surface));
}
.fb-score { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.fb-score b {
    font-family: var(--cl-serif); font-size: 38px; line-height: 1;
    color: var(--dk-accent); letter-spacing: -.02em; font-variant-numeric: tabular-nums;
}
.fb-score span { font-size: 10.5px; color: var(--dk-muted); letter-spacing: .04em; }
.fb-vt { margin: 0 0 2px; font-size: 13.5px; font-weight: 700; color: var(--dk-ink); }
.fb-vd { margin: 0; font-size: 12.5px; line-height: 1.65; color: var(--dk-ink-2); }

.fb-warn {
    margin: 0; padding: 10px 18px;
    font-size: 12.5px; line-height: 1.65;
    color: var(--dk-warn); background: var(--dk-warn-soft);
    border-top: 1px solid color-mix(in srgb, var(--dk-warn) 24%, transparent);
}

.fb-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 12px 18px 16px; }
.fb-presets { display: inline-flex; flex-wrap: wrap; gap: 6px; margin-left: auto; }
.fb-preset {
    border: 1px dashed var(--dk-line-strong); background: transparent;
    color: var(--dk-muted); font-size: 11.5px; padding: 4px 9px; border-radius: 99px; cursor: pointer;
    transition: color .14s, border-color .14s;
}
.fb-preset:hover { color: var(--dk-accent); border-color: var(--dk-accent-line); }

.fb-rel { display: block; }
.fb-rel h3 { font-size: 15.5px; margin-bottom: 6px; }
.fb-rel p { margin: 0; font-size: 13px; color: var(--dk-muted); line-height: 1.65; }

:root[data-theme="dark"] .fb-score b,
:root[data-theme="dark"] .fb-jump a:hover,
:root[data-theme="dark"] .fb-preset:hover { color: #86efac; }

@media (max-width: 960px) { .fb-tool { position: static; } }

@media (max-width: 560px) {
    .fb-inputs { grid-template-columns: 1fr; }
    .fb-score b { font-size: 32px; }
    .fb-presets { margin-left: 0; }
}

/* 窄屏下标题与说明文字不互相挤压 */
.fb-tool .dk-tool-head h2 { min-width: 0; }
.fb-tool .dk-tool-head > span { flex: none; white-space: nowrap; }
