/* ============================================================
 * uw-formation-ts.css — TS 版九宫格编组补充样式
 *
 * 从 `Pages/Components/FormationEditor.razor` 第 427~662 行内联  提取：
 * 拖拽态（.uw-drag-ghost / .uw-drop-active / .uw-drop-forbidden）、
 * 锁定格、仓库高级搜索面板（.uw-ship-search*）。
 * 漏了这些类，编组弹窗的九宫格与高级搜索会完全没有样式。
 * ============================================================ */

    .uw-slot-ship {
        /* 触屏关键：手指按在战舰上时不触发页面滚动/缩放，否则 pointermove 会中途被浏览器收走 */
        touch-action: none;
        cursor: grab;
    }

        .uw-slot-ship.uw-dragging {
            opacity: .35;
        }

    .uw-drag-ghost {
        z-index: 9999;
        padding: 4px 10px;
        border-radius: 8px;
        background: var(--uw-color-accent, #1B5FB0);
        color: #fff;
        font-size: 13px;
        font-family: var(--uw-font-tech, inherit);
        box-shadow: 0 6px 16px rgba(0, 0, 0, .28);
        pointer-events: none;
    }

    .uw-formation-slot.uw-drop-active {
        outline: 2px solid var(--uw-color-accent, #1B5FB0);
        outline-offset: 2px;
    }

    .uw-formation-slot.uw-drop-forbidden {
        outline: 2px dashed #E24B4A;
        outline-offset: 2px;
    }

    .uw-formation-slot.locked {
        opacity: .45;
        border-style: dashed;
        cursor: not-allowed;
    }

    .uw-slot-lock {
        font-size: 11px;
        margin-left: 4px;
        opacity: .8;
    }

    /* ===== 仓库战舰「高级搜索」（2026-11-05）=====
       弹窗可能开在 WinBox 里：遮罩靠 .uw-modal-mask（fixed），包含块由 uw-theme.css 修好（铁律 10e）；
       面板高度用 max-height:100%（不要 100vh，WinBox 内会顶出窗口）→ 头/尾不滚、只有结果区滚动。 */
    /* 标题行是 flex + space-between（见 universe-war.css）→ 用 flex:none 固定按钮宽度，别用 float */
    .uw-warehouse-search-btn {
        flex: none;
        padding: 2px 10px;
        font-size: 12px;
        line-height: 1.6;
    }

    .uw-ship-search {
        width: 640px;
        max-width: 94vw;
        max-height: 100%;
        display: flex;
        flex-direction: column;
        padding: 16px;
    }

        .uw-ship-search .uw-modal-head,
        .uw-ship-search .uw-ship-search-filters,
        .uw-ship-search .uw-ship-search-toolbar,
        .uw-ship-search .uw-ship-search-footer {
            flex: none;
        }

    .uw-ship-search-close {
        background: transparent;
        border: none;
        color: var(--uw-color-text-secondary);
        font-size: 20px;
        line-height: 1;
        cursor: pointer;
        padding: 0 4px;
    }

        .uw-ship-search-close:hover {
            color: var(--uw-color-accent);
        }

    .uw-ship-search-filters {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
        gap: 8px;
    }

    .uw-ship-search-field {
        display: flex;
        flex-direction: column;
        gap: 3px;
        font-size: 12px;
        color: var(--uw-color-text-secondary);
    }

        .uw-ship-search-field > span {
            white-space: nowrap;
        }

        .uw-ship-search-field input,
        .uw-ship-search-field select {
            width: 100%;
            box-sizing: border-box;
            background-color: var(--uw-color-bg-primary);
            border: 1px solid var(--uw-color-border-dim);
            color: var(--uw-color-text-primary);
            border-radius: 3px;
            padding: 5px 7px;
            font-size: 13px;
            font-family: inherit;
        }

            .uw-ship-search-field input:focus,
            .uw-ship-search-field select:focus {
                outline: none;
                border-color: var(--uw-color-accent);
            }

    .uw-ship-search-toolbar {
        display: flex;
        align-items: center;
        gap: 10px;
        margin: 10px 0 6px;
        flex-wrap: wrap;
    }

    .uw-ship-search-summary {
        font-size: 12px;
        color: var(--uw-color-text-secondary);
    }

    .uw-ship-search-msg {
        flex: none;
        font-size: 12px;
        color: var(--uw-color-warning, #E2A03F);
        margin-bottom: 6px;
    }

    .uw-ship-search-results {
        flex: 1 1 auto;
        overflow-y: auto;
        min-height: 96px;
        max-height: 46vh;
        border: 1px solid var(--uw-color-border-dim);
        border-radius: 3px;
        background-color: var(--uw-color-bg-primary);
    }

    .uw-ship-search-empty {
        padding: 18px 10px;
        text-align: center;
    }

    .uw-ship-search-row {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 7px 10px;
        border-bottom: 1px solid var(--uw-color-border-dim);
        cursor: pointer;
        font-size: 13px;
    }

        .uw-ship-search-row:last-child {
            border-bottom: none;
        }

        .uw-ship-search-row:hover {
            background-color: var(--uw-color-bg-tertiary);
        }

        .uw-ship-search-row.on {
            background-color: var(--uw-color-bg-tertiary);
            box-shadow: inset 3px 0 0 var(--uw-color-accent);
        }

        .uw-ship-search-row.blocked {
            opacity: .45;
            cursor: not-allowed;
        }

        .uw-ship-search-row input[type="checkbox"] {
            flex: none;
            width: 15px;
            height: 15px;
            accent-color: var(--uw-color-accent);
        }

    .uw-ship-search-name {
        flex: 1 1 auto;
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .uw-ship-search-stats {
        flex: none;
        font-size: 11px;
        color: var(--uw-color-text-secondary);
        white-space: nowrap;
    }

    .uw-ship-search-footer {
        align-items: center;
        flex-wrap: wrap;
    }

    .uw-ship-search-picked {
        margin-right: auto;
        font-size: 12px;
        color: var(--uw-color-text-secondary);
    }

    @media (max-width: 768px) {
        .uw-ship-search {
            width: 94vw;
            /* 覆盖 .uw-modal 的 min-width:360px —— 360px 宽的手机上 94vw 只有 338px，不置 0 会横向溢出 */
            min-width: 0;
            padding: 12px;
        }

        .uw-ship-search-results {
            max-height: 38vh;
        }

        .uw-ship-search-stats {
            display: none;
        }
    }
