/* ==========================================
   detail35 单产品寻货报价工具
   ========================================== */

:root {
    --primary: #1a73e8;
    --bg:      #f5f7fa;
    --card:    #fff;
    --text:    #202124;
    --muted:   #5f6368;
    --accent:  #e8f0fe;
    --border:  #e0e3e7;
    --error:   #d93025;
    --ok:      #188038;
}

/* -- 报价输入卡片 -- */
.tool-quote {
    max-width: 760px;
    margin: 1.5rem 0 0;
    padding: 1.75rem 2rem;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 12px 0 rgba(0,0,0,0.08);
    border: 1px solid #f0f0f0;
}
.tool-quote .quote-title {
    font-size: 1.1rem;
    color: #003894;
    font-weight: 600;
    margin-bottom: 1.25rem;
    padding-bottom: .75rem;
    border-bottom: 2px solid #003894;
    display: flex;
    align-items: center;
}
.tool-quote .quote-title::before {
    content: '';
    display: inline-block;
    width: 4px;
    height: 1.1rem;
    background: #7b298b;
    margin-right: .5rem;
    border-radius: 2px;
}
.tool-quote .quote-row {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: nowrap;
}
.tool-quote .quote-row .form-control {
    flex: 1 1 auto;
    min-width: 180px;
    height: 2.75rem;
    line-height: 2.75rem;
    border: 1px solid #d9d9d9;
    border-radius: 6px;
    padding: 0 .875rem;
    font-size: .9375rem;
    color: #333;
    background: #fafafa;
    transition: all .2s;
}
.tool-quote .quote-row .form-control:focus {
    outline: none;
    border-color: #003894;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(0,56,148,0.1);
}
.tool-quote .quote-row .form-control::placeholder { color: #bfbfbf; }
.tool-quote .quote-row .btn-submit {
    flex-shrink: 0;
    white-space: nowrap;
    height: 2.75rem;
    padding: 0 1.1rem;
    line-height: 2.75rem;
    border: none;
    border-radius: 6px;
    background: linear-gradient(135deg, #003894 0%, #1a5fc4 100%);
    color: #fff;
    font-size: .9375rem;
    font-weight: 500;
    cursor: pointer;
    transition: all .2s;
    box-shadow: 0 2px 6px rgba(0,56,148,0.25);
}
.tool-quote .quote-row .btn-submit:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(0,56,148,0.35);
}
.tool-quote .quote-row .btn-submit:active { transform: translateY(0); }
.tool-quote .quote-row .btn-submit:disabled {
    opacity: .6;
    cursor: not-allowed;
    transform: none;
}
.tool-quote .quote-row .btn-submit.btn-eh {
    background: #fff;
    color: #003894;
    border: 1px solid #003894;
    box-shadow: none;
}
.tool-quote .quote-row .btn-submit.btn-replace {
    background: #fff;
    color: #7b298b;
    border: 1px solid #7b298b;
    box-shadow: none;
}
.tool-quote .quote-hint {
    margin-top: .875rem;
    font-size: .8125rem;
    color: #999;
    line-height: 1.6;
}
.tool-quote .quote-hint code {
    background: #f5f5f5;
    padding: 1px 6px;
    border-radius: 3px;
    color: #003894;
    font-family: Consolas, Monaco, monospace;
    font-size: .8125rem;
}
/* 搜索历史记录 */
.tool-quote .quote-history {
    margin-top: .875rem;
    padding-top: .875rem;
    border-top: 1px dashed #eee;
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: .5rem;
    font-size: .8125rem;
}
.tool-quote .quote-history .history-label {
    color: #999;
    line-height: 1.9rem;
    flex-shrink: 0;
}
.tool-quote .quote-history .history-list {
    flex: 1 1 auto;
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    min-width: 0;
}
.tool-quote .quote-history .history-item {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    height: 1.9rem;
    padding: 0 .5rem 0 .75rem;
    background: #f5f7fa;
    border: 1px solid #e6e9ef;
    border-radius: 16px;
    color: #333;
    font-size: .8125rem;
    cursor: pointer;
    transition: all .2s;
    overflow: hidden;
}
.tool-quote .quote-history .history-item:hover {
    background: #eef3ff;
    border-color: #003894;
    color: #003894;
}
.tool-quote .quote-history .history-item .history-del {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    margin-left: .4rem;
    border-radius: 50%;
    background: #d9d9d9;
    color: #fff;
    font-style: normal;
    font-size: 12px;
    line-height: 1;
    flex-shrink: 0;
    transition: background .2s;
}
.tool-quote .quote-history .history-item .history-del:hover {
    background: #e54d42;
}
.tool-quote .quote-history .history-clear {
    color: #999;
    cursor: pointer;
    line-height: 1.9rem;
    flex-shrink: 0;
    padding: 0 .25rem;
    transition: color .2s;
}
.tool-quote .quote-history .history-clear:hover {
    color: #e54d42;
}

/* -- 报价结果: 价格卡片 -- */
.card {
    background: var(--card);
    border-radius: 10px;
    padding: 18px 20px;
    margin-bottom: 16px;
    box-shadow: 0 1px 3px rgba(0,0,0,.08);
}
.card-hd {
    font-size: 15px;
    font-weight: 600;
    margin-bottom: 12px;
    color: var(--text);
}
.settings-row {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    align-items: center;
}
.setting-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--muted);
}
.setting-item select {
    padding: 7px 10px;
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 13px;
    background: #fff;
}
.price-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
    margin-top: 14px;
}
.price-item {
    border: 2px solid var(--border);
    border-radius: 10px;
    padding: 14px;
    cursor: pointer;
    transition: all .2s;
    background: #fafbfc;
}
.price-item:hover {
    border-color: var(--primary);
    transform: translateY(-2px);
}
.price-item.selected {
    border-color: var(--primary);
    background: var(--accent);
}
/* 非员工单卡: 仅显示价格, 不可点击切换, 居中展示 */
.price-item-single {
    cursor: default;
    text-align: center;
    min-width: 220px;
}
.price-item-single:hover { transform: none; border-color: var(--border); }
.price-item-single .p-val { font-size: 30px; line-height: 1.2; }
.p-name  { font-size: 13px; color: var(--muted); margin-bottom: 6px; }
.p-val   { font-size: 24px; font-weight: 700; color: var(--primary); }
.p-final { font-size: 13px; color: var(--ok); margin-top: 2px; }
.p-final.discount { color: #b5670f; }
.price-input {
    width: 78px;
    padding: 4px 6px;
    border: 1px solid var(--border);
    border-radius: 5px;
    font-size: 12px;
    text-align: right;
    font-family: Consolas, monospace;
}
.price-input:focus { outline: none; border-color: var(--primary); }
.btn-copy {
    padding: 6px 16px;
    background: var(--primary);
    color: #fff;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 13px;
}
/* 货期自定义输入 */
.copy-bar .lead-label { font-size: 13px; color: var(--muted); margin: 0 4px 0 8px; }
.copy-bar .lead-sep   { font-size: 13px; color: var(--muted); margin: 0 2px; }
.copy-bar .lead-input {
    width: 48px;
    height: 26px;
    padding: 0 8px;
    border: 1px solid var(--border);
    border-radius: 4px;
    font-size: 13px;
    color: #333;
}
.copy-bar .lead-input:focus { outline: none; border-color: var(--primary); }

/* -- 弹窗内表格美化 -- */
.tool-quote-result { padding: 16px 20px; font-size: 13px; }
.tool-quote-result .res-header {
    margin-bottom: 12px;
    padding: 10px 14px;
    background: linear-gradient(135deg, #e8f1ff 0%, #f0e8f6 100%);
    border-radius: 6px;
    border-left: 4px solid #003894;
}
.tool-quote-result .res-header .res-title {
    font-size: 15px;
    font-weight: 600;
    color: #003894;
}
.tool-quote-result .res-header .res-meta { margin-top: 4px; color: #666; }
.tool-quote-result .res-header .res-meta b { color: #333; }
.tool-quote-result .res-warnings {
    margin-bottom: 12px;
    padding: 10px 14px;
    background: #fff1f0;
    border: 1px solid #ffccc7;
    border-radius: 6px;
    color: #cf1322;
    line-height: 1.7;
}
.tool-quote-result .res-codes {
    margin-bottom: 14px;
    padding: 8px 0;
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
}
.tool-quote-result .res-codes .code-item b { color: #666; font-weight: 500; }
.tool-quote-result .res-codes .code-item .req { color: #16b777; font-weight: 600; }
.tool-quote-result .res-codes .code-item .opt { color: #1e9fff; font-weight: 600; }
.tool-quote-result .sec-title {
    margin: 10px 0 6px;
    font-size: 14px;
    font-weight: 600;
    color: #333;
    display: flex;
    align-items: center;
}
.tool-quote-result .sec-title::before {
    content: '';
    display: inline-block;
    width: 3px;
    height: 14px;
    background: #003894;
    margin-right: 6px;
    border-radius: 2px;
}
.tool-quote-result .sec-title.opt::before { background: #1e9fff; }
.tool-quote-result .sec-title .sub {
    margin-left: 8px;
    font-weight: 400;
    color: #999;
    font-size: 12px;
}
.tool-quote-result table.qtable {
    border-collapse: collapse;
    width: 100%;
    margin-bottom: 14px;
    font-size: 13px;
}
.tool-quote-result table.qtable th {
    padding: 8px 10px;
    background: #fafafa;
    border: 1px solid #e8e8e8;
    color: #595959;
    font-weight: 600;
    text-align: left;
}
.tool-quote-result table.qtable td {
    padding: 7px 10px;
    border: 1px solid #e8e8e8;
    color: #333;
    vertical-align: middle;
}
.tool-quote-result table.qtable tr:hover td { background: #fafcff; }
.tool-quote-result table.qtable tr.row-warn td { background: #fff1f0; }
.tool-quote-result table.qtable tr.row-warn:hover td { background: #ffe9e6; }
.tool-quote-result .col-code { font-weight: 600; text-align: center; min-width: 80px; }
.tool-quote-result .col-code.matched     { color: #16b777; }
.tool-quote-result .col-code.unmatched   { color: #e54d42; }
.tool-quote-result .col-code.opt-matched { color: #1e9fff; }
.tool-quote-result .col-code.empty       { color: #ccc; }
.tool-quote-result .col-price {
    text-align: right;
    min-width: 80px;
    font-variant-numeric: tabular-nums;
}
.tool-quote-result .col-price.undetermined { color: #e54d42; font-weight: 600; }
.tool-quote-result .col-price.empty        { color: #ccc; }
.tool-quote-result .col-multi {
    text-align: center;
    width: 42px;
    color: #999;
}
/* 手输输入框(is_remark/is_one_price 选项) */
.tool-quote-result .manual-txt,
.tool-quote-result .manual-num {
    display: inline-block;
    width: 120px;
    height: 26px;
    margin-right: 6px;
    padding: 0 8px;
    border: 1px solid #d9d9d9;
    border-radius: 4px;
    font-size: 12px;
    color: #333;
    background: #fafcff;
    vertical-align: middle;
    transition: border-color .2s, box-shadow .2s;
}
.tool-quote-result .manual-num { width: 72px; }
.tool-quote-result .manual-txt:focus,
.tool-quote-result .manual-num:focus {
    outline: none;
    border-color: #003894;
    box-shadow: 0 0 0 2px rgba(0,56,148,0.1);
    background: #fff;
}
/* 手输参考信息(单位/长度范围) */
.tool-quote-result .ref-txt {
    color: #999;
    font-size: 12px;
}
.tool-quote-result .res-footer {
    margin-top: 14px;
    padding: 14px 16px;
    background: linear-gradient(135deg, #fff7e6 0%, #fffbe6 100%);
    border-radius: 6px;
    border: 1px solid #ffe58f;
}
.tool-quote-result .res-footer .price-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    line-height: 1.8;
}
.tool-quote-result .res-footer .price-row .label { color: #666; font-size: 13px; }
.tool-quote-result .res-footer .price-row .val {
    font-size: 15px;
    font-weight: 600;
    color: #333;
    font-variant-numeric: tabular-nums;
}
.tool-quote-result .res-footer .price-row.total .val {
    color: #e54d42;
    font-size: 22px;
}
