*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;background:#f5f7fa;color:#1f2937}header{height:72px;background:#111827;color:#fff;padding:0 28px;display:flex;align-items:center;justify-content:space-between}header h1{font-size:22px;margin:0}header p{margin:4px 0 0;color:#9ca3af;font-size:12px}button,.fileBtn{border:1px solid #d1d5db;background:#fff;border-radius:7px;padding:8px 14px;cursor:pointer}button:hover,.fileBtn:hover{background:#f3f4f6}.primary{background:#2563eb;color:#fff;border-color:#2563eb}.danger{color:#b91c1c}.muted{color:#9ca3af}main{max-width:1500px;margin:auto;padding:18px}nav{display:flex;gap:8px;margin-bottom:14px;overflow:auto}nav button.active{background:#2563eb;color:#fff;border-color:#2563eb}.tab{display:none;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:18px;box-shadow:0 1px 2px #0000000a}.tab.active{display:block}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.toolbar input,.toolbar select,textarea{border:1px solid #d1d5db;border-radius:7px;padding:9px 11px;background:#fff}.toolbar input{min-width:190px}.searchPanel input{min-width:420px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:12px 0 18px}.cards div{background:#f8fafc;border:1px solid #e5e7eb;border-radius:9px;padding:14px}.cards b{display:block;font-size:22px}.cards span{font-size:12px;color:#6b7280}.syncTip{margin:10px 0;padding:10px 12px;background:#f5f7fa;border:1px solid #e5e7eb;border-radius:8px;color:#667085}.tableWrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:1100px}th,td{padding:10px;border-bottom:1px solid #eef0f3;text-align:left;font-size:13px;vertical-align:middle}th{background:#f8fafc;position:sticky;top:0;z-index:1}.listHead{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.listHead h2,h2{margin:0 0 4px;font-size:18px}.listHead span{font-size:12px;color:#6b7280}.recentBox{display:grid;gap:8px}.recentCard{border:1px solid #e5e7eb;border-radius:8px;padding:11px;background:#fff}.recentCard b{margin-right:12px}.recentCard button{padding:4px 8px;margin-left:6px}.recentItem{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.modalMask{position:fixed;inset:0;background:rgba(15,23,42,.5);display:flex;align-items:center;justify-content:center;z-index:9999;padding:14px}.modal{width:min(1480px,98vw);max-height:94vh;overflow:auto;background:#fff;border-radius:12px;box-shadow:0 15px 50px rgba(0,0,0,.25);padding:20px}.modalHead{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.modalHead h3{margin:0}.materialPicker{border:1px solid #e5e7eb;border-radius:9px;padding:10px;margin:10px 0}.pickerSearch{display:flex;gap:8px}.pickerStock{text-align:right;font-weight:600;color:#374151;white-space:nowrap}.mat-color-list{display:flex;flex-direction:column;gap:8px}.mat-color-row{display:flex;gap:8px;align-items:center}.mat-color-row input{flex:1}.mat-color-row button{min-width:36px}.pickerSearch input{flex:1;min-width:260px;padding:9px 11px;border:1px solid #d1d5db;border-radius:6px}.pickerResults{max-height:300px;overflow:auto;border:1px solid #eee;margin-top:8px}.pickRow{display:grid;grid-template-columns:100px 95px minmax(180px,1.5fr) 80px 80px 65px minmax(140px,1fr) 80px 64px;gap:8px;padding:9px;border-bottom:1px solid #eee;align-items:center;font-size:12px}.pickHeader{background:#f8fafc;font-weight:600;position:sticky;top:0;z-index:1}.pickRow button{padding:4px 8px;white-space:nowrap;min-width:56px;width:auto;justify-self:stretch}.selectedItems{margin-top:12px;min-width:0}.pickRow>span,.pickRow>button{min-width:0}.pickRow>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selHeader,.selRow{display:grid;grid-template-columns:110px 100px minmax(180px,1.5fr) 90px 90px 70px 110px 110px 100px 70px;gap:7px;padding:8px;align-items:center}.selHeader{background:#f8fafc;font-size:12px;font-weight:600;border:1px solid #e5e7eb;border-radius:7px}.selRow{border:1px solid #e5e7eb;border-radius:7px;margin-top:7px}.selRow input{width:100%;padding:7px;border:1px solid #d1d5db;border-radius:6px}.bookQty{text-align:center;font-weight:600;color:#374151}.modalActions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.modal .tableWrap{overflow-x:hidden}.modal table{min-width:0;width:100%;table-layout:fixed}.modal th,.modal td{word-break:break-word}.countSelHeader,.countSelRow{grid-template-columns:110px 100px minmax(180px,1.5fr) 90px 110px 110px 110px 70px}.countSelRow .bookQty{text-align:center}.modal .pickerResults .pickRow:nth-child(even){background:#f3f4f6}.modal .selectedItems .selRow:nth-child(even){background:#f3f4f6}textarea{width:100%;height:320px;font:13px monospace}.fileBtn{display:inline-block}#toast{position:fixed;right:20px;bottom:20px;background:#111827;color:#fff;padding:10px 14px;border-radius:8px;display:none;z-index:11000}@media(max-width:900px){.cards{grid-template-columns:repeat(2,1fr)}.searchPanel input{min-width:260px}.pickRow{grid-template-columns:1fr 1fr}.selHeader{display:none}.selRow{grid-template-columns:1fr}.modal{padding:12px;width:98vw}.modal .tableWrap{overflow-x:auto}.modal table{min-width:0}.countSelHeader{display:none}.countSelRow{grid-template-columns:1fr}}

.recentHint{padding:18px}
.movementMeta{padding:10px 12px;color:#666;font-size:13px}
.movementMeta span{margin-left:18px}
.movementTable table{min-width:1345px;width:100%;table-layout:fixed}
.movementTable th,.movementTable td{padding:9px 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* v23：最近出入库默认突出规格型号、备注，其余识别字段更紧凑；最终宽度可由用户拖动调整。 */
.movementTable th:nth-child(1),.movementTable td:nth-child(1){width:100px}
.movementTable th:nth-child(2),.movementTable td:nth-child(2){width:230px}
.movementTable th:nth-child(3),.movementTable td:nth-child(3){width:70px}
.movementTable th:nth-child(4),.movementTable td:nth-child(4){width:120px}
.movementTable th:nth-child(5),.movementTable td:nth-child(5){width:145px}
.movementTable th:nth-child(6),.movementTable td:nth-child(6){width:80px}
.movementTable th:nth-child(7),.movementTable td:nth-child(7){width:65px}
.movementTable th:nth-child(8),.movementTable td:nth-child(8){width:80px;text-align:right}
.movementTable th:nth-child(9),.movementTable td:nth-child(9){width:105px;text-align:right}
.movementTable th:nth-child(10),.movementTable td:nth-child(10){width:250px}

/* v23：统一数据表视觉规范 + Excel 风格可拖动列宽。新建 table 会由 warehouse.js 自动增强。 */
.dataTableResizable{border:1px solid #e1e5ea;border-radius:6px;border-spacing:0;overflow:visible}
.dataTableResizable th,.dataTableResizable td{border-right:1px solid #e7eaee;border-bottom:1px solid #e7eaee}
.dataTableResizable tbody tr:last-child td{border-bottom:0}
.dataTableResizable tbody tr:nth-child(odd){background:#fff}
.dataTableResizable tbody tr:nth-child(even){background:#f7f8fa}
.dataTableResizable th{position:sticky;top:0;z-index:3;background:#f4f6f8;box-shadow:inset 0 -1px 0 #dfe3e8}
.dataTableResizable th{position:relative;user-select:none}
.dataTableResizable .colResizeHandle{position:absolute;top:0;right:0;width:9px;height:100%;cursor:col-resize;z-index:20;touch-action:none}
.dataTableResizable .colResizeHandle:hover,.dataTableResizable .colResizeHandle.active{background:rgba(37,99,235,.16)}
.dataTableResizable .colResizeHandle::after{content:"";position:absolute;top:20%;bottom:20%;left:4px;width:1px;background:transparent}
.dataTableResizable .colResizeHandle:hover::after,.dataTableResizable .colResizeHandle.active::after{background:#94a3b8}

.movementType{display:inline-block;padding:2px 8px;border-radius:10px;font-size:12px}
.movementType.in{background:#e9f7ef;color:#16834a}
.movementType.out{background:#fff0f0;color:#c53b3b}
.warehouse-spec-cell{white-space:nowrap}.warehouse-image-link{display:inline-block;font-size:12px;margin-right:8px;padding:2px 6px;border-radius:4px;border:0;vertical-align:middle}.warehouse-image-link.has-image{color:#16834a;background:#e9f7ef;cursor:pointer}.warehouse-image-link.has-image:hover{background:#d7f2e1}.warehouse-image-link.no-image{color:#9ca3af;background:#eef0f3;cursor:default}.warehouseImageMask{position:fixed;inset:0;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;z-index:12000;padding:20px}.warehouseImageMask.hidden{display:none}.warehouseImageModal{width:min(620px,88vw);max-height:82vh;background:#fff;border-radius:10px;box-shadow:0 15px 45px rgba(0,0,0,.25);padding:14px}.warehouseImageHead{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.warehouseImageHead button{border:0;background:transparent;font-size:22px;padding:2px 7px}.warehouseImageBody{min-height:180px;max-height:68vh;background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:auto;padding:10px}.warehouseImageBody img{max-width:100%;max-height:64vh;object-fit:contain;border-radius:6px}

.checkLabel{display:inline-flex;align-items:center;gap:6px;padding:9px 2px;white-space:nowrap;font-size:13px;color:#374151}.checkLabel input{min-width:auto;width:16px;height:16px}

/* 仓库列表：顶部筛选区固定，仅数据区域滚动；分页固定在表格下方。 */
.tab.active{height:calc(100vh - 122px);min-height:520px;display:flex;flex-direction:column;overflow:hidden}
.tab.active .listHead,.tab.active>.toolbar,.tab.active>.cards,.tab.active>.syncTip{flex:0 0 auto}
.tableScroll{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.tableScroll .tableWrap{flex:1 1 auto;min-height:0;overflow:auto}
.tableScroll .tableWrap table{margin:0}
.tableScroll .tableWrap th{position:sticky;top:0;z-index:2}
.pager{flex:0 0 auto;padding-top:10px;background:#fff}
.pagerInner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;border:1px solid #e5e7eb;border-radius:8px;padding:8px 10px;font-size:13px}
.pagerControls{display:flex;align-items:center;gap:7px}.pagerControls select{border:1px solid #d1d5db;border-radius:6px;padding:6px 8px;background:#fff}.pagerControls button{padding:6px 10px}.pagerControls button:disabled{opacity:.4;cursor:not-allowed}
@media(max-width:900px){.tab.active{height:calc(100vh - 105px);min-height:480px}}
.clickCard{cursor:pointer}.clickCard:hover{box-shadow:0 2px 10px rgba(0,0,0,.08);transform:translateY(-1px)}

/* v22：最近出入库表格加宽列间距，减少右侧空白并提高可读性 */
/* v20：盘点新建窗口加载失败时保持窗口可见 */
#retryCountMaterials{margin-left:8px;padding:4px 9px}

/* v25：扩大真实拖动热区，避免表头分隔线难以抓取 */
.dataTableResizable{border-collapse:separate!important;table-layout:fixed!important;overflow:visible!important}
.dataTableResizable th,.dataTableResizable td{box-sizing:border-box}
.dataTableResizable th{position:relative!important}
.dataTableResizable .v25-col-resizer{position:absolute!important;top:0!important;right:-1px!important;width:14px!important;height:100%!important;cursor:col-resize!important;z-index:9999!important;display:block!important;background:transparent!important}
.dataTableResizable .v25-col-resizer:hover,.dataTableResizable .v25-col-resizer.active{background:rgba(120,130,140,.20)!important}

/* v30：仓位设置选择模式，仅作用于库存查询页。 */
.locationSelectCell{width:0!important;min-width:0!important;max-width:0!important;padding:0!important;text-align:center;display:table-cell!important;border-right:0!important;overflow:hidden;font-size:0}.locationSelectionMode .locationSelectCell{display:table-cell!important;width:42px!important;min-width:42px!important;max-width:42px!important;padding:4px 6px!important;border-right:1px solid #e7eaee!important;font-size:inherit}
.locationSelectCell input{width:16px;height:16px}
.locationText{white-space:nowrap}
.locationBtnActive{background:#111827!important;color:#fff!important;border-color:#111827!important}
.locationModalBox{width:min(520px,92vw)}
.locationModalBox .locationHint{margin:4px 0 12px;color:#6b7280;font-size:13px}
.locationInput{width:100%;padding:10px 11px;border:1px solid #d1d5db;border-radius:7px;font-size:14px}

/* ===== 2026 UI Refresh: warehouse visual-only layer; no business logic ===== */
:root{
    --w-bg:#f5f7fb;
    --w-surface:rgba(255,255,255,.94);
    --w-line:#e7ebf2;
    --w-line-strong:#dbe2ec;
    --w-text:#172033;
    --w-muted:#7b8798;
    --w-primary:#2f6df6;
    --w-primary-dark:#2459d7;
    --w-shadow:0 8px 28px rgba(26,39,65,.07);
    --w-shadow-hover:0 14px 36px rgba(26,39,65,.11);
}
html{scroll-behavior:smooth}
body{
    background:
        radial-gradient(circle at 8% -5%,rgba(47,109,246,.075),transparent 30%),
        radial-gradient(circle at 95% 0%,rgba(102,126,234,.055),transparent 28%),
        var(--w-bg)!important;
    color:var(--w-text)!important;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei","PingFang SC",Arial,sans-serif!important;
}
header{
    height:70px!important;
    background:rgba(255,255,255,.88)!important;
    color:var(--w-text)!important;
    border-bottom:1px solid var(--w-line)!important;
    box-shadow:0 4px 18px rgba(26,39,65,.045)!important;
    backdrop-filter:blur(18px);
}
header h1{font-size:20px!important;font-weight:650!important;letter-spacing:-.02em}
header p{color:var(--w-muted)!important}
main{max-width:1500px!important;padding:18px!important}
nav{gap:6px!important;margin-bottom:14px!important}
nav button{
    border-color:var(--w-line-strong)!important;
    border-radius:10px!important;
    background:rgba(255,255,255,.88)!important;
    color:#687588!important;
    transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease!important;
}
nav button:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(26,39,65,.07)!important}
nav button.active{background:var(--w-primary)!important;border-color:var(--w-primary)!important;color:#fff!important;box-shadow:0 6px 16px rgba(47,109,246,.20)!important}
.tab{
    background:var(--w-surface)!important;
    border-color:var(--w-line)!important;
    border-radius:16px!important;
    box-shadow:var(--w-shadow)!important;
    backdrop-filter:blur(14px);
}
.toolbar{gap:9px!important}
button,.fileBtn{
    border-radius:10px!important;
    border-color:var(--w-line-strong)!important;
    transition:transform .18s ease,box-shadow .18s ease,background .18s ease!important;
}
button:hover,.fileBtn:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(26,39,65,.07)!important}
button:active,.fileBtn:active{transform:scale(.985)}
.primary{background:var(--w-primary)!important;border-color:var(--w-primary)!important;box-shadow:0 5px 14px rgba(47,109,246,.15)}
.primary:hover{background:var(--w-primary-dark)!important}
.toolbar input,.toolbar select,textarea,.pickerSearch input,.selRow input,.locationInput{
    border-color:var(--w-line-strong)!important;
    border-radius:10px!important;
    color:var(--w-text)!important;
    transition:border-color .2s ease,box-shadow .2s ease!important;
}
.toolbar input:focus,.toolbar select:focus,textarea:focus,.pickerSearch input:focus,.selRow input:focus,.locationInput:focus{
    outline:none;
    border-color:#8eb1ff!important;
    box-shadow:0 0 0 4px rgba(47,109,246,.10)!important;
}
.cards{gap:12px!important}
.cards div{
    background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(249,251,255,.94))!important;
    border-color:var(--w-line)!important;
    border-radius:14px!important;
    box-shadow:0 5px 18px rgba(26,39,65,.055)!important;
    transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease!important;
}
.cards div:hover{transform:translateY(-3px);box-shadow:var(--w-shadow-hover)!important;border-color:#d6e1f1!important}
.cards b{color:var(--w-text)!important}
.cards span{color:var(--w-muted)!important}
.listHead h2,h2{font-size:17px!important;font-weight:650!important;letter-spacing:-.015em;color:var(--w-text)!important}
.listHead span,.movementMeta,.muted{color:var(--w-muted)!important}
.tableWrap table,.movementTable table{border-radius:12px!important;overflow:hidden}
th{background:#f7f9fc!important;color:#687588!important;border-bottom:1px solid var(--w-line)!important;font-weight:600!important}
td{border-bottom-color:#eef1f5!important}
tbody tr:hover td{background:#f8fbff!important}
.recentCard{border-color:var(--w-line)!important;border-radius:12px!important;box-shadow:0 4px 14px rgba(26,39,65,.04)!important;transition:transform .2s ease,box-shadow .2s ease!important}
.recentCard:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(26,39,65,.08)!important}
.modalMask{background:rgba(15,23,42,.34)!important;backdrop-filter:blur(7px)!important}
.modal{border:1px solid rgba(255,255,255,.75)!important;border-radius:18px!important;box-shadow:0 28px 90px rgba(15,23,42,.20)!important;backdrop-filter:blur(18px)}
.modalHead{padding-bottom:2px}
.materialPicker{border-color:var(--w-line)!important;border-radius:12px!important;background:rgba(248,250,253,.55)!important}
.pickerResults{border-color:var(--w-line)!important;border-radius:10px!important;overflow:hidden}
.pickRow,.selHeader,.selRow{border-bottom-color:#edf0f4!important}
.pickHeader,.selHeader{background:#f7f9fc!important;color:#687588!important}
.selRow{border-color:var(--w-line)!important;border-radius:10px!important;background:#fff!important}
.dataTableResizable{border-color:var(--w-line)!important;border-radius:12px!important;box-shadow:0 3px 12px rgba(26,39,65,.035)}
.dataTableResizable th{background:#f7f9fc!important;box-shadow:inset 0 -1px 0 #dfe5ed!important}
.dataTableResizable tbody tr:nth-child(even){background:#fafbfc!important}
.dataTableResizable tbody tr:hover{background:#f5f9ff!important}
.pagerInner{border-color:var(--w-line)!important;border-radius:10px!important;background:rgba(255,255,255,.86)!important}
.movementType{border-radius:999px!important}
.warehouseImageModal{border-radius:16px!important;box-shadow:0 28px 80px rgba(15,23,42,.22)!important}
.warehouseImageBody{border-color:var(--w-line)!important;border-radius:10px!important;background:#f7f9fc!important}
#toast{border-radius:12px!important;box-shadow:0 14px 36px rgba(15,23,42,.18)!important}
.clickCard{transition:transform .22s ease,box-shadow .22s ease!important}
.clickCard:hover{box-shadow:var(--w-shadow-hover)!important;transform:translateY(-2px)!important}


/* GENDAN_WAREHOUSE_UI_PREMIUM_20260929 */

:root{
    --wh-bg:#f4f6f8;
    --wh-border:rgba(15,23,42,.075);
    --wh-text:#172033;
    --wh-shadow:0 8px 28px rgba(15,23,42,.055);
    --wh-shadow-hover:0 14px 38px rgba(15,23,42,.09);
}

/* 页面 */
html,
body{
    color:var(--wh-text);

    background:
        radial-gradient(
            circle at 8% 0%,
            rgba(37,99,235,.05),
            transparent 28%
        ),
        radial-gradient(
            circle at 92% 8%,
            rgba(99,102,241,.045),
            transparent 24%
        ),
        linear-gradient(
            180deg,
            #f8fafc 0%,
            #f4f6f8 58%,
            #f1f3f5 100%
        );

    -webkit-font-smoothing:antialiased;
}

button,
input,
select,
textarea{
    font-family:inherit;
}

/* 按钮 */
button{
    transition:
        transform .16s ease,
        box-shadow .16s ease,
        background-color .16s ease,
        border-color .16s ease;
}

button:not(:disabled):active{
    transform:translateY(1px) scale(.99);
}

/* 输入 */
input,
select,
textarea{
    border-color:rgba(15,23,42,.12)!important;
    border-radius:10px!important;

    transition:
        border-color .16s ease,
        box-shadow .16s ease;
}

input:focus,
select:focus,
textarea:focus{
    outline:none!important;

    border-color:
        rgba(37,99,235,.48)!important;

    box-shadow:
        0 0 0 3px
        rgba(37,99,235,.10)!important;
}

/* 工具栏 */
.toolbar,
.cards,
.listHead,
.syncTip{
    border-radius:14px!important;
}

/* 统计卡 */
.cards>*{
    border:
        1px solid var(--wh-border)!important;

    box-shadow:
        var(--wh-shadow)!important;

    border-radius:14px!important;

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.97),
            rgba(248,250,252,.90)
        )!important;

    transition:
        transform .2s ease,
        box-shadow .2s ease,
        border-color .2s ease;
}

.cards>*:hover{
    transform:translateY(-2px);

    box-shadow:
        var(--wh-shadow-hover)!important;

    border-color:
        rgba(37,99,235,.12)!important;
}

/* 表格 */
.tableScroll .tableWrap{
    border:
        1px solid var(--wh-border);

    border-radius:14px;

    background:
        rgba(255,255,255,.78);

    box-shadow:
        var(--wh-shadow);
}

.tableScroll .tableWrap th{
    background:
        linear-gradient(
            180deg,
            #fafbfc,
            #f5f7fa
        )!important;

    color:#4b5563!important;

    font-weight:600!important;

    border-bottom:
        1px solid rgba(15,23,42,.08)!important;
}

.tableScroll .tableWrap td{
    border-color:
        rgba(15,23,42,.065)!important;
}

.tableScroll .tableWrap tbody tr{
    transition:
        background-color .14s ease;
}

.tableScroll .tableWrap tbody tr:hover{
    background:
        rgba(37,99,235,.028)!important;
}

/* 分页 */
.pager{
    background:transparent!important;
}

.pagerInner{
    background:
        rgba(255,255,255,.82)!important;

    box-shadow:
        0 5px 18px rgba(15,23,42,.035);

    border-radius:12px!important;
}

.pagerControls select,
.pagerControls button{
    border-radius:9px!important;
}

/* 出入库类型 */
.movementType{
    border-radius:999px!important;
    padding:4px 9px!important;
    font-weight:600;
}

/* 图片弹窗 */
.warehouseImageModal{
    border-radius:18px!important;

    box-shadow:
        0 24px 70px rgba(15,23,42,.18)!important;
}

.warehouseImageMask{
    background:
        rgba(15,23,42,.38)!important;

    backdrop-filter:blur(7px);
    -webkit-backdrop-filter:blur(7px);
}

.warehouseImageBody{
    border-radius:12px!important;

    background:
        linear-gradient(
            145deg,
            #f8fafc,
            #eef2f7
        )!important;
}

.checkLabel{
    color:#4b5563!important;
}

.locationBtnActive{
    box-shadow:
        0 5px 16px rgba(15,23,42,.14)!important;
}

.clickCard{
    transition:
        transform .18s ease,
        box-shadow .18s ease!important;
}

.clickCard:hover{
    transform:translateY(-2px)!important;

    box-shadow:
        0 10px 28px
        rgba(15,23,42,.09)!important;
}

/* 滚动条 */
::-webkit-scrollbar{
    width:8px;
    height:8px;
}

::-webkit-scrollbar-track{
    background:transparent;
}

::-webkit-scrollbar-thumb{
    background:
        rgba(100,116,139,.22);

    border-radius:999px;
}

::-webkit-scrollbar-thumb:hover{
    background:
        rgba(100,116,139,.34);
}

/* 小屏 */
@media(max-width:900px){

    .cards>*:hover,
    .clickCard:hover{
        transform:none!important;
    }
}


/* GENDAN_WAREHOUSE_UI_PREMIUM_V2_20260929 */

/* ===== 仓库页标题层级 ===== */

.pageTitle,
.page-title,
.sectionTitle,
.section-title {
    letter-spacing: -0.018em;
}

h1 {
    font-weight: 700;
    letter-spacing: -0.025em;
}

h2 {
    font-weight: 650;
    letter-spacing: -0.018em;
}

h3 {
    font-weight: 600;
    letter-spacing: -0.012em;
}

/* ===== 工具栏 ===== */

.toolbar {
    gap: 10px !important;
}

.toolbar button,
.toolbar .btn {
    transition:
        transform .16s ease,
        box-shadow .16s ease,
        background-color .16s ease,
        border-color .16s ease;
}

.toolbar button:not(:disabled):active,
.toolbar .btn:not(:disabled):active {
    transform: scale(.985);
}

/* ===== 仓库卡片 ===== */

.cards {
    gap: 16px !important;
}

.cards > * {
    transition:
        transform .18s ease,
        box-shadow .18s ease,
        border-color .18s ease;
}

.cards > *:hover {
    transform: translateY(-2px);
    box-shadow:
        0 12px 30px rgba(15,23,42,.075);
}

/* ===== 表格 ===== */

.tableWrap {
    box-shadow:
        0 8px 24px rgba(15,23,42,.045);
}

.tableWrap thead th {
    font-weight: 600;
    letter-spacing: .01em;
}

.tableWrap tbody tr {
    transition:
        background-color .14s ease;
}

.tableWrap tbody tr:hover {
    background: rgba(37,99,235,.025);
}

/* ===== 仓库按钮 ===== */

button,
.btn,
.locationBtn {
    transition:
        transform .16s ease,
        box-shadow .16s ease,
        background-color .16s ease,
        border-color .16s ease;
}

button:not(:disabled):active,
.btn:not(:disabled):active,
.locationBtn:not(:disabled):active {
    transform: scale(.985);
}

/* ===== 仓库弹窗 ===== */

.modalMask,
.modal-mask,
.imageModalMask {
    animation: gendanWarehouseMaskIn .18s ease-out both;
}

.modal,
.modalBox,
.imageModal,
.modalContent {
    animation: gendanWarehouseModalIn .20s cubic-bezier(.22,.8,.28,1) both;
}

@keyframes gendanWarehouseMaskIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes gendanWarehouseModalIn {
    from {
        opacity: 0;
        transform: translateY(8px) scale(.985);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* ===== 仓库状态标签 ===== */

.movementType {
    box-shadow:
        inset 0 0 0 1px rgba(15,23,42,.035);
}

/* ===== 小屏 ===== */

@media (max-width: 768px) {
    .cards {
        gap: 12px !important;
    }

    .toolbar {
        gap: 8px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

/* GENDAN_WAREHOUSE_BUTTON_V3_20260929 */

/* ===== 仓库按钮统一视觉 ===== */

button,
.btn,
.locationBtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;

    min-height: 36px;
    padding: 7px 14px;

    font-size: 14px;
    line-height: 20px;
    font-weight: 550;

    text-align: center;
    white-space: nowrap;

    box-sizing: border-box;

    gap: 6px;

    letter-spacing: -0.005em;
}

button.text-xs,
.btn.text-xs {
    min-height: 32px;
    padding: 5px 11px;
    font-size: 13px;
    line-height: 18px;
}

button.text-sm,
.btn.text-sm {
    min-height: 36px;
    padding: 7px 14px;
    font-size: 14px;
    line-height: 20px;
}

button svg,
.btn svg,
.locationBtn svg {
    flex: 0 0 auto;
}

button span,
.btn span,
.locationBtn span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 20px;
}

button:disabled,
.btn:disabled {
    transform: none !important;
}

@media (max-width: 768px) {
    button,
    .btn,
    .locationBtn {
        min-height: 35px;
        padding: 7px 12px;
    }
}

@media (prefers-reduced-motion: reduce) {
    button,
    .btn,
    .locationBtn {
        transition: none !important;
    }
}


/* GENDAN_WAREHOUSE_SELECT_ALL_IMAGE_FIX_20260930 */
.warehouseSelectAllCell{
  width:42px!important;
  min-width:42px!important;
  max-width:42px!important;
  padding:4px 6px!important;
  text-align:center!important;
}

.warehouseSelectAllCell input,
.locationSelectCell input{
  width:16px!important;
  height:16px!important;
  margin:0!important;
  vertical-align:middle;
}

.warehouseImageBody .hidden{
  display:none!important;
}

/* 20261005：入库/出库/盘点物料选择区恢复系统统一数据表格式 */
.materialPicker .pickerResults.tableWrap,
.selectedTableWrap{overflow:auto!important;}
.materialPicker .pickerTable,
.selectedTable{width:max-content;min-width:100%;table-layout:fixed;border-collapse:collapse;}
.materialPicker .pickerTable th,
.materialPicker .pickerTable td,
.selectedTable th,
.selectedTable td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.materialPicker .pickerTable td button,
.selectedTable td button{padding:5px 10px;white-space:nowrap;}
.materialPicker .pickerTable .pickerStock,
.selectedTable .bookQty{text-align:right;font-weight:600;white-space:nowrap;}
.selectedTable input.qty{width:100%;min-width:80px;}
.materialPicker .column-chooser-host,
.selectedTableWrap .column-chooser-host{margin-bottom:6px;}


/* 响应式仓库页面：随浏览器窗口铺开，窄屏仍允许表格横向滚动。 */
html,body{width:100%;min-width:0}
.hidden{display:none!important}
.scopeDisabled{display:none!important}
@media(max-width:600px){
 header{height:auto!important;min-height:82px;align-items:flex-start;gap:8px;padding:12px}header h1{font-size:21px}header p{font-size:13px;max-width:70vw}header button{white-space:nowrap}
 #inventory.tab.active{height:auto!important;min-height:0;overflow:visible}
 #inventory .cards{grid-template-columns:repeat(2,1fr)!important;gap:6px!important}#inventory .cards>div{padding:10px!important}#inventory .cards b{font-size:21px!important}
 #inventory .tableScroll{min-height:280px;flex:auto!important}#inventory .tableScroll .tableWrap{min-height:200px;height:auto!important;max-height:55vh!important;flex:auto!important}
 #inventory .searchPanel{flex-wrap:wrap}#inventory #invQ{min-width:0;flex:1 1 180px}
 #tabs{overflow-x:auto;flex-wrap:nowrap}.toolbar{flex-wrap:wrap}.toolbar input{min-width:0!important;max-width:100%}
 .modalMask{padding:6px}.modal{width:100%;padding:10px}.modal .toolbar{display:flex;flex-wrap:wrap}.modal .toolbar input{min-width:0!important}
 .pickerSearch input{min-width:0}.modal .tableWrap{overflow-x:auto!important}.modalActions{position:sticky;bottom:0;background:white;padding:10px 0;z-index:2}
 input,select,button{font-size:16px}
}
main{width:100%!important;max-width:none!important;margin-left:auto!important;margin-right:auto!important;padding:clamp(8px,1vw,22px)!important}
.tab{min-width:0}
.materialState{display:inline-block;margin:3px 6px;padding:2px 5px;border-radius:4px;background:#edf7ee;color:#276338;font-size:12px}
.materialState.disabled{background:#fff1d5;color:#874b00}.stateHint{color:#874b00;font-size:14px;margin:6px 0}
.archiveDetail{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}
@media(max-width:600px){
 body{overflow-x:hidden}header{flex-wrap:wrap}header p{max-width:none}.tab.active,#inventory.tab.active{height:auto!important;max-height:none!important;overflow:visible!important}
 #tabs{position:sticky;top:0;background:white;z-index:40;padding:5px 0}#tabs button{min-height:44px;flex:0 0 auto}
 .toolbar{gap:8px}.toolbar input,.toolbar select{flex:1 1 140px;min-height:44px;max-width:100%;box-sizing:border-box}
 button,a.fileBtn{min-height:42px;padding:8px 12px!important}input,select,textarea{font-size:16px!important}input[type=checkbox]{min-height:20px;width:20px;height:20px}
 .listHead{align-items:flex-start;gap:8px;flex-wrap:wrap}.listHead>div:last-child{display:flex;flex-wrap:wrap;gap:6px}
 .tableScroll,#inventory .tableScroll .tableWrap,.tableWrap{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}
 table.mobileCards,table.mobileCards tbody{display:block!important;width:100%!important;min-width:0!important;max-width:100%!important;table-layout:auto!important}
 table.mobileCards colgroup,table.mobileCards thead{display:none!important}
 table.mobileCards tr{display:block!important;margin:10px 0;border:1px solid #d7e0ea;border-radius:9px;background:#fff;overflow:hidden}
 table.mobileCards td:not([style*="display: none"]){display:grid!important;grid-template-columns:85px minmax(0,1fr);gap:6px;align-items:center;width:auto!important;min-width:0!important;max-width:none!important;white-space:normal!important;overflow-wrap:anywhere;text-overflow:clip!important;padding:7px 10px!important;text-align:left!important}
 table.mobileCards td::before{content:attr(data-label);font-size:13px;color:#687486;font-weight:400}
 table.mobileCards td.locationSelectCell{display:none!important}table.mobileCards.locationSelectionMode td.locationSelectCell{display:grid!important}
 .v25-col-resizer,.column-chooser-host{display:none!important}#inventory .inventory-column-chooser{display:none!important}
 table.mobileCards td button{width:fit-content;max-width:100%;margin:2px}.warehouse-spec-cell{font-weight:600}
 .modalMask{padding:6px;align-items:flex-start;overflow-y:auto;height:var(--warehouse-vh,100dvh);box-sizing:border-box}
 .modal{display:flex;flex-direction:column;max-height:calc(var(--warehouse-vh,100dvh) - 12px)!important;overflow:auto!important;width:100%!important;max-width:100%!important;box-sizing:border-box;overscroll-behavior:contain;padding:10px!important}
 .modalHead{position:sticky;top:-10px;background:#fff;z-index:5;flex-shrink:0;padding:8px 0}.modalHead h3{font-size:19px;margin:0}.modalHead .close{min-width:44px}
 .modal .toolbar{flex-shrink:0}.modal .toolbar label{max-width:100%}.modal input.qty{min-width:0!important;width:100%!important;min-height:46px;box-sizing:border-box;border:1px solid #9aaabe;border-radius:5px;padding:8px}
 .modal .pickerResults{max-height:32dvh!important;overflow-y:auto!important;flex-shrink:0}.modal .pickerResults tr{margin:6px 0}.modal .pickerSearch{position:sticky;top:0;background:#fff;z-index:2;display:flex;gap:6px}.pickerSearch input{width:0;flex:1;min-height:44px}
 .modalActions{position:sticky;bottom:-10px;background:#fff;z-index:6;flex-shrink:0;padding:10px 0!important;box-shadow:0 -3px 8px #e4e9ef;flex-wrap:wrap}
 .modalActions .primary{flex:1;min-height:48px}.modalMask.hasSelection .modalHead{order:0}.modalMask.hasSelection .toolbar{order:1}.modalMask.hasSelection .selectedItems{order:2}.modalMask.hasSelection .materialPicker{order:3}.modalMask.hasSelection .modalActions{order:4}
 .selRow{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px;padding:12px;font-size:16px}.selRow .qty{grid-column:1/-1}.countSelHeader{display:none}
 .warehouseImageBody img{max-width:100%!important;height:auto!important}.warehouseImageTabs{display:flex;flex-wrap:wrap}.pager{flex-wrap:wrap}
 #toast{left:12px;right:12px;bottom:14px;font-size:15px}
}

@media(max-width:600px){.tab:not(.active) table.mobileCards td::before{content:none}.modal .toolbar>input{flex:1 1 100%!important;width:100%!important}.modal .toolbar label{width:100%}}
