/* ======================================================================
 *  screw-size-converter.css —— 螺丝规格换算（#10）
 *  主题：墨蓝 + 钢灰 + 警示橙（工业零件手册质感）
 *  布局语言：左右双栏镜像规格表 + 中心对齐轴
 * ====================================================================== */

/* ---------- 作用域 ---------- */
.scr-page,
.scr-modal,
.scr-sheet,
.scr-toast {
    --scr-navy: #14243D;
    --scr-navy-2: #1E3355;
    --scr-steel: #8A97A5;
    --scr-steel-2: #C7D0D9;
    --scr-orange: #F07C1E;
    --scr-orange-2: #FF9B47;
    --scr-orange-soft: #FDF0E3;
    --scr-paper: #F1F4F7;
    --scr-card: #FFFFFF;
    --scr-card-2: #F7F9FB;
    --scr-line: #D7DEE5;
    --scr-line-2: #E8EDF1;
    --scr-ink: #121C2B;
    --scr-ink-2: #475568;
    --scr-ink-3: #7C8A9A;
    --scr-ok: #1F7A5C;
    --scr-ok-soft: #E3F3EE;
    --scr-warn: #A8690A;
    --scr-warn-soft: #FCF1DF;
    --scr-danger: #B32E22;
    --scr-danger-soft: #FBEAE7;
    --scr-r-sm: 6px;
    --scr-r-md: 10px;
    --scr-r-lg: 14px;
    --scr-sh-1: 0 1px 2px rgba(18, 28, 43, .07);
    --scr-sh-2: 0 8px 20px rgba(18, 28, 43, .1);
    --scr-sh-3: 0 18px 40px rgba(18, 28, 43, .16);
    --scr-mono: Consolas, Menlo, monospace;
}

:root[data-theme="dark"] .scr-page,
:root[data-theme="dark"] .scr-modal,
:root[data-theme="dark"] .scr-sheet,
:root[data-theme="dark"] .scr-toast {
    --scr-navy: #0A1018;
    --scr-navy-2: #121C2A;
    --scr-steel: #8E9BA9;
    --scr-steel-2: #4A5563;
    --scr-orange: #FF9445;
    --scr-orange-2: #FFB377;
    --scr-orange-soft: rgba(255, 148, 69, .15);
    --scr-paper: #0B1016;
    --scr-card: #141B24;
    --scr-card-2: #1A222C;
    --scr-line: #29323D;
    --scr-line-2: #212932;
    --scr-ink: #E9EEF4;
    --scr-ink-2: #AEBAC7;
    --scr-ink-3: #7E8B9A;
    --scr-ok: #4FC79A;
    --scr-ok-soft: rgba(79, 199, 154, .14);
    --scr-warn: #E9AE5A;
    --scr-warn-soft: rgba(233, 174, 90, .14);
    --scr-danger: #EE8277;
    --scr-danger-soft: rgba(238, 130, 119, .14);
    --scr-sh-1: 0 1px 2px rgba(0, 0, 0, .42);
    --scr-sh-2: 0 8px 20px rgba(0, 0, 0, .48);
    --scr-sh-3: 0 18px 40px rgba(0, 0, 0, .58);
}

.scr-page {
    color: var(--scr-ink);
    font-size: 15.5px;
    line-height: 1.8;
}
.scr-page * { box-sizing: border-box; }

/* ================= 首屏 ================= */
.scr-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    gap: 30px;
    align-items: center;
    background:
        repeating-linear-gradient(90deg, rgba(255, 255, 255, .03) 0 1px, transparent 1px 46px),
        linear-gradient(155deg, var(--scr-navy) 0%, var(--scr-navy-2) 100%);
    border-radius: var(--scr-r-lg);
    padding: 30px 36px;
    margin-bottom: 22px;
    box-shadow: var(--scr-sh-3);
    position: relative;
    overflow: hidden;
}
.scr-hero::before {
    content: "";
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 6px;
    background: repeating-linear-gradient(180deg, var(--scr-orange) 0 14px, rgba(255, 255, 255, .18) 14px 28px);
}
.scr-hero-copy { position: relative; z-index: 1; min-width: 0; }
.scr-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 5px 13px;
    border-radius: 4px;
    background: rgba(240, 124, 30, .16);
    border: 1px solid rgba(240, 124, 30, .42);
    color: var(--scr-orange-2);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: .03em;
    margin-bottom: 13px;
}
.scr-hero h1 {
    font-size: clamp(25px, 3.2vw, 34px);
    font-weight: 800;
    line-height: 1.26;
    letter-spacing: -.02em;
    color: #FFFFFF;
    margin: 0 0 11px;
}
.scr-hero-sub {
    font-size: 15px;
    line-height: 1.85;
    color: #B6C3D1;
    margin: 0 0 16px;
    max-width: 56ch;
}
.scr-hero-sub b { color: var(--scr-orange-2); font-weight: 700; }
.scr-chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.scr-chips li {
    padding: 5px 12px;
    border-radius: 4px;
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .13);
    color: #C3CFDB;
    font-size: 12.5px;
    font-weight: 600;
}
/* 镜像读数 */
.scr-mirror-wrap { position: relative; z-index: 1; }
.scr-mirror {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: var(--scr-r-md);
    padding: 20px 18px;
}
.scr-mirror-side { text-align: center; min-width: 0; }
.scr-mirror-side .ms-label {
    display: inline-block;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .1em;
    color: var(--scr-steel-2);
    margin-bottom: 6px;
}
.scr-mirror-side .ms-val {
    display: block;
    font-size: 30px;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -.02em;
    color: #FFFFFF;
    font-family: var(--scr-mono);
    word-break: break-all;
}
.scr-mirror-side.is-metric .ms-val { color: var(--scr-orange-2); }
.scr-mirror-side .ms-sub { display: block; font-size: 11.5px; color: #9FB0C0; margin-top: 5px; }
.scr-mirror-axis {
    width: 34px; height: 34px;
    border-radius: 50%;
    background: var(--scr-orange);
    color: #14243D;
    display: grid;
    place-items: center;
    font-size: 16px;
    font-weight: 800;
    box-shadow: 0 0 0 4px rgba(240, 124, 30, .16);
}
.scr-mirror-note { font-size: 12.5px; color: #B6C3D1; text-align: center; margin: 9px 0 0; }
.scr-mirror-note b { color: var(--scr-orange-2); }

/* ================= 首屏操作条 ================= */
.scr-quick {
    background: var(--scr-card);
    border: 1px solid var(--scr-line);
    border-radius: var(--scr-r-md);
    box-shadow: var(--scr-sh-2);
    padding: 17px 21px 15px;
    margin: -10px 0 22px;
    position: relative;
    z-index: 3;
}
.scr-mode-row { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }
.scr-mode {
    padding: 7px 16px;
    border: 1px solid var(--scr-line);
    border-radius: var(--scr-r-sm);
    background: var(--scr-card-2);
    color: var(--scr-ink-2);
    font-size: 13.5px;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    transition: all .16s;
}
.scr-mode:hover { border-color: var(--scr-orange); color: var(--scr-orange); }
.scr-mode.is-on { background: var(--scr-navy); border-color: var(--scr-navy); color: #fff; }
.scr-quick-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
    gap: 16px;
    align-items: end;
}
.scr-field { min-width: 0; }
.scr-field > label {
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: var(--scr-ink-2);
    margin-bottom: 6px;
}
.scr-field input[type="text"],
.scr-field select {
    width: 100%;
    padding: 10px 12px;
    font-size: 15px;
    font-family: inherit;
    color: var(--scr-ink);
    background: var(--scr-card-2);
    border: 1px solid var(--scr-line);
    border-radius: var(--scr-r-sm);
    outline: none;
    transition: border-color .16s, box-shadow .16s, background-color .16s;
}
.scr-field input:focus, .scr-field select:focus {
    border-color: var(--scr-orange);
    background: var(--scr-card);
    box-shadow: 0 0 0 3px var(--scr-orange-soft);
}
.scr-field input.is-bad { border-color: var(--scr-danger); box-shadow: 0 0 0 3px var(--scr-danger-soft); }
.scr-hint { font-size: 12px; line-height: 1.6; color: var(--scr-ink-3); margin: 5px 0 0; }
.scr-hint b { color: var(--scr-ink-2); }
.scr-err { font-size: 12.5px; color: var(--scr-danger); margin: 9px 0 0; font-weight: 600; }
.scr-err:empty { display: none; }
.scr-quick-mini { display: flex; gap: 14px; justify-content: center; margin-top: 7px; }
.scr-linkbtn {
    background: none; border: none; padding: 0;
    font-family: inherit; font-size: 12.5px; font-weight: 650;
    color: var(--scr-ink-3); cursor: pointer;
    border-bottom: 1px dashed var(--scr-line);
    transition: color .16s, border-color .16s;
}
.scr-linkbtn:hover { color: var(--scr-orange); border-color: var(--scr-orange); }

/* ================= 按钮 ================= */
.scr-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.scr-btn {
    padding: 10px 18px;
    border-radius: var(--scr-r-sm);
    border: 1px solid var(--scr-line);
    background: var(--scr-card);
    color: var(--scr-ink-2);
    font-size: 14px;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    transition: all .16s;
}
.scr-btn:hover { border-color: var(--scr-orange); color: var(--scr-orange); transform: translateY(-1px); }
.scr-btn--primary {
    background: var(--scr-orange);
    border-color: var(--scr-orange);
    color: #14243D;
    box-shadow: 0 8px 18px rgba(240, 124, 30, .26);
}
.scr-btn--primary:hover { color: #14243D; filter: brightness(1.05); }
.scr-btn--lg { padding: 12px 28px; font-size: 15px; }
/* ================= 主区 ================= */
.scr-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 392px);
    gap: 20px;
    align-items: start;
}
.scr-panel {
    background: var(--scr-card);
    border: 1px solid var(--scr-line);
    border-radius: var(--scr-r-md);
    box-shadow: var(--scr-sh-1);
    padding: 19px 21px 21px;
    margin-bottom: 18px;
}
.scr-panel-head { display: flex; align-items: center; gap: 10px; margin-bottom: 15px; }
.scr-step {
    flex-shrink: 0;
    display: grid; place-items: center;
    width: 27px; height: 27px;
    border-radius: var(--scr-r-sm);
    background: var(--scr-navy);
    color: var(--scr-orange-2);
    font-size: 12px;
    font-weight: 800;
    font-family: var(--scr-mono);
}
.scr-panel-head h2 {
    font-size: 17px; font-weight: 750; color: var(--scr-ink);
    margin: 0; letter-spacing: -.01em;
}

/* 双栏镜像规格表 */
.scr-dual { border: 1px solid var(--scr-line); border-radius: var(--scr-r-sm); overflow: hidden; }
.scr-dual-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 54px minmax(0, 1fr);
    background: var(--scr-navy);
    color: #fff;
}
.scr-dual-head > div { padding: 10px 12px; font-size: 12.5px; font-weight: 700; letter-spacing: .04em; }
.scr-dual-head > div:nth-child(2) { text-align: center; color: var(--scr-orange-2); }
.scr-dual-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 54px minmax(0, 1fr);
    border-bottom: 1px solid var(--scr-line-2);
    background: var(--scr-card);
}
.scr-dual-row:last-child { border-bottom: none; }
.scr-dual-row > div { padding: 11px 12px; font-size: 14px; color: var(--scr-ink-2); }
.scr-dual-row > div:nth-child(2) {
    text-align: center;
    background: var(--scr-card-2);
    border-left: 1px solid var(--scr-line-2);
    border-right: 1px solid var(--scr-line-2);
    font-family: var(--scr-mono);
    font-size: 12px;
    color: var(--scr-steel);
}
.scr-dual-row.is-hit { background: var(--scr-orange-soft); }
.scr-dual-row.is-hit > div { color: var(--scr-ink); font-weight: 700; }
.scr-dual-row.is-hit > div:nth-child(2) { color: var(--scr-orange); font-weight: 800; }
.scr-dual-row b { color: var(--scr-ink); font-weight: 700; }

/* 明细 */
.scr-rows { display: flex; flex-direction: column; }
.scr-row {
    display: flex; justify-content: space-between; align-items: baseline; gap: 16px;
    padding: 10px 2px;
    border-bottom: 1px dashed var(--scr-line);
    font-size: 14px;
}
.scr-row:last-child { border-bottom: none; }
.scr-row .rk { color: var(--scr-ink-2); flex-shrink: 0; }
.scr-row .rv { color: var(--scr-ink); font-weight: 700; text-align: right; word-break: break-all; }
.scr-row .rv em { font-style: normal; color: var(--scr-ink-3); font-weight: 500; font-size: 12.5px; }

/* 提示 */
.scr-note {
    display: flex; gap: 11px;
    padding: 13px 15px;
    border-radius: var(--scr-r-sm);
    font-size: 13.5px; line-height: 1.75;
    margin-bottom: 11px;
    border: 1px solid transparent;
}
.scr-note:last-child { margin-bottom: 0; }
.scr-note .ico { flex-shrink: 0; font-size: 16px; line-height: 1.5; }
.scr-note--ok { background: var(--scr-ok-soft); border-color: color-mix(in srgb, var(--scr-ok) 26%, transparent); color: var(--scr-ink-2); }
.scr-note--ok b { color: var(--scr-ok); }
.scr-note--warn { background: var(--scr-warn-soft); border-color: color-mix(in srgb, var(--scr-warn) 26%, transparent); color: var(--scr-ink-2); }
.scr-note--warn b { color: var(--scr-warn); }
.scr-note--danger { background: var(--scr-danger-soft); border-color: color-mix(in srgb, var(--scr-danger) 26%, transparent); color: var(--scr-ink-2); }
.scr-note--danger b { color: var(--scr-danger); }

/* 批量 */
.scr-batch textarea {
    width: 100%; min-height: 112px;
    padding: 12px 13px;
    font-size: 14px; font-family: var(--scr-mono); line-height: 1.72;
    color: var(--scr-ink);
    background: var(--scr-card-2);
    border: 1px solid var(--scr-line);
    border-radius: var(--scr-r-sm);
    outline: none; resize: vertical;
}
.scr-batch textarea:focus { border-color: var(--scr-orange); box-shadow: 0 0 0 3px var(--scr-orange-soft); }
.scr-batch-out {
    margin-top: 12px; max-height: 320px; overflow: auto;
    border: 1px solid var(--scr-line); border-radius: var(--scr-r-sm);
}
.scr-batch-out table { width: 100%; border-collapse: collapse; font-size: 13px; }
.scr-batch-out th, .scr-batch-out td { padding: 7px 10px; border-bottom: 1px solid var(--scr-line-2); text-align: left; }
.scr-batch-out th { background: var(--scr-card-2); color: var(--scr-ink-3); font-size: 12px; font-weight: 700; position: sticky; top: 0; }
.scr-batch-out td { color: var(--scr-ink-2); }
.scr-batch-out td:first-child { font-weight: 700; color: var(--scr-ink); }

/* 全文 */
.scr-doc {
    font-family: var(--scr-mono); font-size: 13px; line-height: 1.85;
    white-space: pre-wrap; word-break: break-word;
    color: var(--scr-ink-2);
    background: var(--scr-card-2);
    border: 1px solid var(--scr-line);
    border-radius: var(--scr-r-sm);
    padding: 15px 16px;
    max-height: 440px; overflow: auto;
}
.scr-doc:empty::before { content: "输入规格后点击「开始换算」"; color: var(--scr-ink-3); }

/* 风险卡 */
.scr-risk { margin-top: 28px; }
.scr-risk > h2 { font-size: 20px; font-weight: 800; margin: 0 0 15px; letter-spacing: -.01em; }
.scr-risk-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 13px; }
.scr-risk-card {
    padding: 17px 18px;
    border: 1px solid var(--scr-line);
    border-left: 3px solid var(--scr-orange);
    border-radius: var(--scr-r-sm);
    background: var(--scr-card);
    box-shadow: var(--scr-sh-1);
}
.scr-risk-card h3 { font-size: 15px; font-weight: 750; margin: 0 0 6px; color: var(--scr-ink); }
.scr-risk-card p { font-size: 13.5px; line-height: 1.78; color: var(--scr-ink-2); margin: 0; }
.scr-risk-card b { color: var(--scr-ink); }

/* toast */
.scr-toast {
    position: fixed; left: 50%; bottom: 26px;
    transform: translateX(-50%) translateY(10px);
    background: var(--scr-navy);
    color: #fff;
    font-size: 14px; font-weight: 600;
    padding: 11px 22px; border-radius: 6px;
    z-index: 9999; opacity: 0; pointer-events: none;
    transition: opacity .2s, transform .2s;
    box-shadow: var(--scr-sh-3);
}
.scr-toast.is-on { opacity: 1; transform: translateX(-50%) translateY(0); }

/* ================= 响应式 ================= */
@media (max-width: 980px) {
    .scr-hero { grid-template-columns: 1fr; padding: 26px 22px; }
    .scr-main { grid-template-columns: 1fr; }
    .scr-quick-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .scr-quick-grid .scr-field--act { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
    .scr-hero { padding: 20px 16px; }
    .scr-hero h1 { font-size: 22px; }
    .scr-quick-grid { grid-template-columns: 1fr; }
    .scr-mirror-side .ms-val { font-size: 23px; }
    .scr-dual-head, .scr-dual-row { grid-template-columns: minmax(0, 1fr) 40px minmax(0, 1fr); }
}

/* ================= 打印 ================= */
@media print {
    .scr-actions, .scr-batch, .scr-toast, .scr-quick { display: none !important; }
    .scr-hero { background: none; box-shadow: none; border: 1px solid #999; }
    .scr-hero h1, .scr-hero-sub, .scr-kicker, .scr-chips li { color: #000 !important; }
    .scr-panel, .scr-risk-card { box-shadow: none; break-inside: avoid; }
}
