/* 
         * 以4K大屏为1.0标准基准（逻辑分辨率假设约为 2560px）
         * 1rem 在2560px宽下等价于原本的像素值
         * 随着屏幕变小（如1080p，逻辑宽度 1920 或 1536），元素自动等比例缩小
         */
        :root {
            font-size: clamp(10px, calc(100vw / 2560 * 16), 32px);
        }


        


        /* 自适应缩放基准：假设以 1920px 作为 4K/完美视口的等效宽度 */
        


        /* 自适应缩放基准：假设以 120rem 作为 4K/完美视口的等效宽度 */
        


        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: 'Microsoft YaHei', sans-serif;
            background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 50%, #a8c0ff 100%);
            color: #333333;
            min-height: 100vh;
            overflow-x: hidden;
        }

        .container {
            display: flex;
            height: 100vh;
            gap: 1.25rem;
            padding: 1.25rem;
        }

        /* 左侧面板 */
        .left-panel {
            flex: 1;
            display: flex;
            flex-direction: column;
            gap: 1.25rem;
            min-width: 0;
        }

        /* 盟约信息区域 */
        .covenant-info {
            background: rgba(255, 255, 255, 0.9);
            border-radius: 0.75rem;
            padding: 0.75rem 0.9375rem;
            border: 1px solid rgba(0, 0, 0, 0.1);
            backdrop-filter: blur(0.625rem);
            min-height: 6.25rem;
            max-height: 25vh;
            overflow-y: auto;
            box-shadow: 0 0.25rem 0.375rem rgba(0, 0, 0, 0.1);
            flex-shrink: 0;
        }

        .covenant-info h2 {
            color: #4a9eff;
            margin-bottom: 0.5rem;
            font-size: 1.125rem;
            text-align: center;
            text-shadow: 0 0 0.5rem rgba(74, 158, 255, 0.5);
        }

        .covenant-details {
            line-height: 1.5;
            font-size: 0.8125rem;
        }

        .covenant-details .requirement {
            color: #ff6b35;
            margin-bottom: 0.375rem;
            font-weight: bold;
            font-size: 0.75rem;
        }

        .covenant-details .description {
            white-space: pre-line;
            color: #555555;
        }

        /* 干员列表区域 */
        .operators-section {
            background: rgba(255, 255, 255, 0.9);
            border-radius: 0.75rem;
            padding: 0.9375rem;
            border: 1px solid rgba(0, 0, 0, 0.1);
            backdrop-filter: blur(0.625rem);
            flex: 1;
            display: flex;
            flex-direction: column;
            box-shadow: 0 0.25rem 0.375rem rgba(0, 0, 0, 0.1);
            overflow: hidden;
        }

        .operators-section h3 {
            color: #4a9eff;
            margin-bottom: 0.75rem;
            font-size: 1.125rem;
            text-align: center;
            text-shadow: 0 0 0.625rem rgba(74, 158, 255, 0.5);
            flex-shrink: 0;
        }

        .operators-layout {
            display: flex;
            gap: 0.9375rem;
            flex: 1;
            overflow: hidden;
            border-top: 1px solid rgba(0,0,0,0.05);
            padding-top: 0.75rem;
        }

        .operators-list {
            display: flex;
            flex-direction: column;
            gap: 0.5rem;
            width: 12.5rem;
            overflow-y: auto;
            padding-right: 0.5rem;
            flex-shrink: 0;
        }

        .operator-detail-panel {
            flex: 1;
            background: rgba(255, 255, 255, 0.6);
            border-radius: 0.625rem;
            border: 1px solid rgba(0, 0, 0, 0.1);
            padding: 0.9375rem;
            overflow-y: auto;
        }

        .operator-card {
            display: flex;
            align-items: center;
            cursor: pointer;
            transition: all 0.3s ease;
            padding: 0.625rem;
            border-radius: 0.625rem;
            background: rgba(255, 255, 255, 0.7);
            border: 1px solid rgba(0, 0, 0, 0.1);
        }

        .operator-card:hover, .operator-card.active {
            transform: translateX(0.3125rem);
            background: rgba(255, 255, 255, 0.9);
            box-shadow: 0 3px 0.625rem rgba(74, 158, 255, 0.3);
            border-color: #4a9eff;
        }

        .operator-avatar {
            width: 2.875rem;
            height: 2.875rem;
            border-radius: 50%;
            object-fit: cover;
            border: 2px solid #4a9eff;
            margin-right: 0.9375rem;
            margin-bottom: 0;
        }

        .operator-info-short {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
        }

        .operator-name {
            font-size: 0.9375rem;
            color: #333333;
            font-weight: bold;
        }

        .operator-tier {
            font-size: 0.75rem;
            color: #ff6b35;
            margin-top: 0.25rem;
        }

        /* 右侧盟约列表 */
        .right-panel {
            width: 12.5rem;
            background: rgba(255, 255, 255, 0.9);
            border-radius: 0.9375rem;
            padding: 0.9375rem;
            border: 1px solid rgba(0, 0, 0, 0.1);
            backdrop-filter: blur(0.625rem);
            overflow-y: auto;
            box-shadow: 0 0.25rem 0.375rem rgba(0, 0, 0, 0.1);
        }

        .right-panel h3 {
            color: #4a9eff;
            margin-bottom: 0.75rem;
            font-size: 1rem;
            text-align: center;
            text-shadow: 0 0 0.3125rem rgba(74, 158, 255, 0.5);
        }

        .covenant-list {
            display: flex;
            flex-direction: column;
            gap: 0.5rem;
        }

        .covenant-item {
            display: flex;
            align-items: center;
            padding: 0.375rem 0.5rem;
            background: rgba(255, 255, 255, 0.7);
            border-radius: 0.625rem;
            cursor: pointer;
            transition: all 0.3s ease;
            border: 1px solid rgba(0, 0, 0, 0.1);
        }

        .covenant-item:hover {
            background: rgba(255, 255, 255, 0.9);
            transform: translateX(-0.3125rem);
            box-shadow: 0 3px 0.5rem rgba(74, 158, 255, 0.3);
        }

        .covenant-item.active {
            background: rgba(74, 158, 255, 0.3);
            border-color: #4a9eff;
        }

        .covenant-icon {
            width: 2.75rem;
            height: 2.75rem;
            border-radius: 0.375rem;
            object-fit: cover;
            margin-right: 0.625rem;
            border: 1px solid rgba(255, 255, 255, 0.3);
        }

        .covenant-name {
            font-size: 1rem;
            color: #333333;
            font-weight: 500;
        }

        /* 干员详情模态框 */
        .modal {
            display: none;
            position: fixed;
            z-index: 1000;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0, 0, 0, 0.8);
            backdrop-filter: blur(0.3125rem);
        }

        .modal-content {
            background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 50%, #e9ecef 100%);
            margin: 5% auto;
            padding: 1.875rem;
            border: 1px solid rgba(0, 0, 0, 0.1);
            border-radius: 1.25rem;
            width: 80%;
            max-width: 37.5rem;
            max-height: 80vh;
            overflow-y: auto;
            position: relative;
            box-shadow: 0 0.625rem 1.5625rem rgba(0, 0, 0, 0.2);
        }

        .close {
            color: #666666;
            float: right;
            font-size: 1.75rem;
            font-weight: bold;
            cursor: pointer;
            position: absolute;
            right: 1.25rem;
            top: 0.9375rem;
        }

        .close:hover {
            color: #333333;
        }

        .operator-detail-header {
            display: flex;
            align-items: center;
            margin-bottom: 0.9375rem;
            padding-bottom: 0.75rem;
            border-bottom: 1px solid rgba(0, 0, 0, 0.1);
        }

        .operator-detail-avatar {
            width: 5rem;
            height: 5rem;
            border-radius: 50%;
            object-fit: cover;
            border: 3px solid #4a9eff;
            margin-right: 0.9375rem;
        }

        .operator-detail-info h2 {
            color: #4a9eff;
            font-size: 1.5rem;
            margin-bottom: 0.5rem;
            text-shadow: 0 0 0.625rem rgba(74, 158, 255, 0.5);
        }

        .operator-detail-tier {
            color: #ffd700;
            font-size: 1rem;
            font-weight: bold;
        }

        .operator-covenants {
            margin: 0.9375rem 0;
        }

        .operator-covenants h3 {
            color: #4a9eff;
            margin-bottom: 0.5rem;
            font-size: 1rem;
        }

        .covenant-tags {
            display: flex;
            flex-wrap: wrap;
            gap: 0.375rem;
        }

        .covenant-tag {
            background: rgba(74, 158, 255, 0.15);
            color: #4a9eff;
            padding: 0.25rem 0.625rem;
            border-radius: 0.75rem;
            font-size: 0.75rem;
            border: 1px solid rgba(74, 158, 255, 0.3);
        }

        .operator-trait {
            margin-top: 0.9375rem;
        }

        .operator-trait h3 {
            color: #4a9eff;
            margin-bottom: 0.5rem;
            font-size: 1rem;
        }

        .trait-details {
            background: rgba(255, 255, 255, 0.7);
            padding: 0.75rem;
            border-radius: 0.625rem;
            border: 1px solid rgba(0, 0, 0, 0.1);
            font-size: 0.875rem;
        }

        .trait-category {
            color: #ff6b35;
            font-weight: bold;
            margin-bottom: 0.5rem;
        }

        .trait-description {
            line-height: 1.6;
            white-space: pre-line;
            color: #555555;
        }

        /* 关键词联动的悬浮提示框 */
        .keyword-tooltip {
            position: absolute;
            background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 50%, #e9ecef 100%);
            border: 1px solid #ff6b35;
            border-radius: 0.75rem;
            padding: 0.9375rem;
            box-shadow: 0 0.625rem 1.875rem rgba(255, 107, 53, 0.2);
            z-index: 1100;
            min-width: 21.25rem; /* modified */
            max-width: 28.125rem; /* modified */
            max-height: 25rem; /* modified */
            overflow-y: auto;
            opacity: 0;
            visibility: hidden;
            transition: opacity 0.2s ease, visibility 0.2s ease;
            pointer-events: auto;
        }

        .keyword-tooltip.show {
            opacity: 1;
            visibility: visible;
        }

        .keyword-tooltip h4 {
            color: #ff6b35;
            margin-bottom: 0.9375rem; /* modified */
            text-align: center;
            border-bottom: 1px solid rgba(255, 107, 53, 0.3);
            padding-bottom: 0.75rem; /* modified */
            font-size: 1rem; /* modified */
        }

        .keyword-op-item {
            margin-bottom: 0.75rem; /* modified */
            padding-bottom: 0.75rem; /* modified */
            border-bottom: 1px dashed rgba(0,0,0,0.1);
            display: flex;
            align-items: flex-start;
        }

        .keyword-op-item:last-child {
            border-bottom: none;
            margin-bottom: 0;
            padding-bottom: 0;
        }

        .keyword-op-avatar {
            width: 2.5rem; /* modified */
            height: 2.5rem; /* modified */
            border-radius: 0.5rem; /* modified */
            object-fit: cover;
            margin-right: 0.75rem; /* modified */
            border: 2px solid #ddd;
            flex-shrink: 0;
        }

        .keyword-op-content {
            flex: 1;
        }

        .keyword-op-header {
            display: flex;
            align-items: center;
            gap: 0.5rem; /* modified */
            margin-bottom: 0.375rem; /* modified */
        }

        .keyword-op-name {
            font-weight: bold;
            color: #4a9eff;
            font-size: 0.875rem; /* modified */
        }

        .keyword-op-covenants {
            display: flex;
            gap: 0.3125rem; /* modified */
        }

        .keyword-op-covenant-tag {
            background: rgba(74, 158, 255, 0.1);
            color: #4a9eff;
            padding: 2px 0.375rem; /* modified */
            border-radius: 0.375rem; /* modified */
            font-size: 0.75rem; /* modified */
            border: 1px solid rgba(74, 158, 255, 0.3);
        }

        .keyword-op-desc {
            font-size: 0.8125rem; /* modified */
            color: #555555;
            line-height: 1.5; /* modified */
            white-space: pre-line;
        }

        /* 针对 4k 和超大屏幕使用媒体查询进行适度放大 */
        
            .covenant-info h2 { font-size: 1.5rem; }
            .covenant-details { font-size: 1rem; }
            .covenant-details .requirement { font-size: 0.875rem; }
            
            .operators-section { padding: 1.5625rem; }
            .operators-section h3 { font-size: 1.375rem; }
            .operators-list { width: 15.625rem; gap: 0.75rem; }
            .operator-detail-panel { padding: 1.5625rem; }
            
            .operator-avatar { width: 3.5rem; height: 3.5rem; }
            .operator-name { font-size: 1.125rem; }

            .operator-detail-avatar { width: 6.25rem; height: 6.25rem; }
            .operator-detail-info h2 { font-size: 1.75rem; }
            .operator-detail-tier { font-size: 1.125rem; }
            .operator-covenants h3 { font-size: 1.125rem; }
            .covenant-tag { font-size: 0.875rem; padding: 0.375rem 0.75rem; }
            .operator-trait h3 { font-size: 1.125rem; }
            .trait-details { font-size: 1rem; padding: 1.125rem; }
            
            .right-panel { width: 18.75rem; padding: 1.25rem; }
            .right-panel h3 { font-size: 1.25rem; }
            .covenant-item { padding: 0.625rem 0.75rem; gap: 0.625rem; }
            .covenant-icon { width: 4rem; height: 4rem; }
            .covenant-name { font-size: 1.25rem; }
            
            .keyword-tooltip { min-width: 28.125rem; max-width: 37.5rem; padding: 1.5625rem; }
            .keyword-tooltip h4 { font-size: 1.375rem; margin-bottom: 1.25rem; }
            .keyword-op-avatar { width: 3.5rem; height: 3.5rem; margin-right: 0.9375rem; }
            .keyword-op-name { font-size: 1.125rem; }
            .keyword-op-desc { font-size: 1rem; }
            .keyword-op-covenant-tag { font-size: 0.875rem; padding: 0.25rem 0.5rem; }

        .tooltip-header {
            display: flex;
            align-items: center;
            margin-bottom: 0.9375rem;
            padding-bottom: 0.75rem;
            border-bottom: 1px solid rgba(0, 0, 0, 0.1);
        }

        .tooltip-avatar {
            width: 5rem;
            height: 5rem;
            border-radius: 50%;
            object-fit: cover;
            border: 2px solid #4a9eff;
            margin-right: 1.25rem;
        }

        .tooltip-info h4 {
            color: #4a9eff;
            font-size: 1.375rem;
            margin: 0 0 0.5rem 0;
        }

        .tooltip-tier {
            color: #ff6b35;
            font-size: 1rem;
            font-weight: bold;
        }

        .tooltip-covenants {
            margin: 0.75rem 0;
        }

        .tooltip-covenants h5 {
            color: #4a9eff;
            font-size: 1.0625rem;
            margin: 0 0 0.625rem 0;
        }

        .tooltip-tags {
            display: flex;
            flex-wrap: wrap;
            gap: 0.5rem;
        }

        .tooltip-tag {
            background: rgba(74, 158, 255, 0.15);
            color: #4a9eff;
            padding: 0.375rem 0.875rem;
            border-radius: 0.75rem;
            font-size: 1rem;
            border: 1px solid rgba(74, 158, 255, 0.3);
            cursor: pointer;
            transition: all 0.2s ease;
        }

        .tooltip-tag:hover {
            background: rgba(74, 158, 255, 0.25);
            transform: translateY(-2px);
            box-shadow: 0 2px 0.3125rem rgba(74, 158, 255, 0.2);
        }

        .tooltip-trait {
            margin-top: 0.75rem;
        }

        .tooltip-trait h5 {
            color: #4a9eff;
            font-size: 1.0625rem;
            margin: 0 0 0.625rem 0;
        }

        .tooltip-trait-desc {
            background: rgba(255, 255, 255, 0.7);
            padding: 0.9375rem;
            border-radius: 0.625rem;
            border: 1px solid rgba(0, 0, 0, 0.1);
            font-size: 1rem;
            line-height: 1.6;
            color: #555555;
        }

        .tooltip-trait-category {
            color: #ff6b35;
            font-weight: bold;
            margin-bottom: 0.5rem;
            font-size: 1rem;
        }

        /* 滚动条样式 */
        ::-webkit-scrollbar {
            width: 0.5rem;
        }

        ::-webkit-scrollbar-track {
            background: rgba(0, 0, 0, 0.1);
            border-radius: 0.25rem;
        }

        ::-webkit-scrollbar-thumb {
            background: rgba(74, 158, 255, 0.5);
            border-radius: 0.25rem;
        }

        ::-webkit-scrollbar-thumb:hover {
            background: rgba(74, 158, 255, 0.7);
        }

        /* 空状态 */
        .empty-state {
            text-align: center;
            color: #888888;
            padding: 2.5rem;
            font-style: italic;
        }

        /* 响应式设计 */
        @media (max-width: 48rem) {
            .container {
                flex-direction: column;
            }
            
            .right-panel {
                width: 100%;
                order: 2;
            }
            
            .left-panel {
                order: 1;
            }
        }
        /* 搜索框样式 */
        .search-container {
            position: relative;
            margin-bottom: 1rem;
        }
        .search-input {
            width: 100%;
            padding: 0.6rem 2.5rem 0.6rem 1rem;
            border: 1px solid rgba(74, 158, 255, 0.5);
            border-radius: 20px;
            font-size: 1rem;
            outline: none;
            transition: all 0.3s ease;
            background: rgba(255, 255, 255, 0.9);
            box-shadow: 0 2px 5px rgba(0,0,0,0.05);
        }
        .search-input:focus {
            border-color: #ff6b35;
            box-shadow: 0 4px 10px rgba(255, 107, 53, 0.2);
        }
        .search-icon {
            position: absolute;
            right: 0.8rem;
            top: 50%;
            transform: translateY(-50%);
            color: #4a9eff;
            pointer-events: none;
        }
        .clear-search {
            position: absolute;
            right: 2.2rem;
            top: 50%;
            transform: translateY(-50%);
            color: #ccc;
            cursor: pointer;
            display: none;
            font-weight: bold;
        }
        .clear-search:hover { color: #ff6b35; }