 /* 容器布局 */
 .rst-content {
     width: 100%;
     max-width: 100vw;
 }
 .layout-footer {
    display: none;
 }

 .ic_selector_container {
     height: 100%;
     display: flex;
     flex-direction: row;
     padding: 12px;
     box-sizing: border-box;
     width: 100% ;
     max-width: 100vw ;
 }

 .ic_selector_panel-left {
     width: 300px;
     flex: 0 0 300px;
     overflow-y: auto;
     /* 保留垂直滚动 */
     overflow-x: hidden;
     /* 关键：允许水平方向溢出，不截断tooltip */
     max-height: 90vh;
     padding: 10px;
     box-sizing: border-box;
 }

 /* 面板样式 */
 .ic_selector_panel-right {
     padding: 0px;
     flex: 1;
     overflow: auto;
     /* 限制最大高度，确保滚动条正常工作 */
     max-height: 90vh;
     box-sizing: border-box;
 }


 .ic_selector_header {
     margin-bottom: 20px;
 }

 /* 排序相关样式 */
 .ic_selector_table th.sortable {
     cursor: pointer;
     position: relative;
     padding-right: 20px;
     /* 为排序图标预留空间 */
 }

 .ic_selector_table th.sortable:hover {
     background-color: #f1f5f9;
 }

 /* 排序图标基础样式 - 调整为容器定位 */
 #ic_selector_partNumsTableContainer .ic_selector_table th.sortable {
     position: relative;
     padding-right: 24px;
     /* 增加空间容纳两个箭头 */
 }

 /* 移除原有的单个伪元素样式，改为两个伪元素 */
 #ic_selector_partNumsTableContainer .ic_selector_table th.sortable::before,
 #ic_selector_partNumsTableContainer .ic_selector_table th.sortable::after {
     content: "";
     position: absolute;
     right: 2px;
     width: 0;
     height: 0;
     border-left: 4px solid transparent;
     border-right: 4px solid transparent;
     z-index: 1;
 }

 /* 上箭头（↑）- 用于未排序状态和升序状态 */
 #ic_selector_partNumsTableContainer .ic_selector_table th.sortable::before {
     top: 30%;
     /* 上箭头位置靠上 */
     border-bottom: 4px solid #6b7280;
 }

 /* 下箭头（↓）- 用于未排序状态和降序状态 */
 #ic_selector_partNumsTableContainer .ic_selector_table th.sortable::after {
     bottom: 30%;
     /* 下箭头位置靠下 */
     border-top: 4px solid #6b7280;
 }

 /* 升序状态：只显示上箭头（隐藏下箭头） */
 #ic_selector_partNumsTableContainer .ic_selector_table th.sort-asc::after {
     display: none;
 }

 /* 升序状态：上箭头变色强调 */
 #ic_selector_partNumsTableContainer .ic_selector_table th.sort-asc::before {
     border-bottom-color: #1f2937;
 }

 /* 降序状态：只显示下箭头（隐藏上箭头） */
 #ic_selector_partNumsTableContainer .ic_selector_table th.sort-desc::before {
     display: none;
 }

 /* 降序状态：下箭头变色强调 */
 #ic_selector_partNumsTableContainer .ic_selector_table th.sort-desc::after {
     border-top-color: #1f2937;
 }

 /* 未排序状态：两个箭头都显示 */
 #ic_selector_partNumsTableContainer .ic_selector_table th.sortable:not(.sort-asc):not(.sort-desc)::before,
 #ic_selector_partNumsTableContainer .ic_selector_table th.sortable:not(.sort-asc):not(.sort-desc)::after {
     opacity: 0.6;
     /* 未排序状态箭头稍淡 */
 }

 @media (max-width: 768px) {

     .ic_selector_panel-left {
         width: 100%;
         /* 占满屏幕宽度 */
         max-height: 50vh;
         /* 限制左侧高度（40% 视口高度），给右侧留空间 */
         flex: 0 0 auto;
         /* 不伸缩，固定高度 */
     }

     .ic_selector_panel-right {
         width: 100%;
         /* 占满屏幕宽度 */
         max-height: calc(100vh - 50vh - 36px);
         /* 视口高度 - 左侧高度 - 容器内边距(12px×2) - 上下间距(12px) */
         flex: 1;
         /* 若内容少，自动占满剩余高度 */
         background-color: #fff;
         /* 强制背景色，避免透明 */
         min-height: 200px;
         /* 最小高度，即使没内容也能看到面板 */
     }
 }

 .ic_selector_panel-body {
     padding: 0px;
     margin-bottom: 10px;
 }

 #ic_selector_ipTableContainer .ic_selector_panel-body {
     padding: 1px;
 }

 .ic_selector_header-subtitle {
     color: #6b7280;
     font-size: 1rem;
 }

 .ic_selector_panel-container {
     display: flex;
     flex-wrap: wrap;
     gap: 1px;
     overflow: visible;
 }

 .ic_selector_panel-header {
     padding: 10px 10px;
     background-color: #b5ccfa;
     border-bottom: 1px solid #e5e7eb;
     height: 25px;
     display: flex;
     align-items: center;
 }

 .ic_selector_panel-right .ic_selector_panel-header {
     position: sticky;
     z-index: 3;
     left: 0;
     top: 0;
     padding: 10px 10px;
     background-color: #b5ccfa;
     border-bottom: 1px solid #e5e7eb;
     height: 25px;
     display: flex;
     align-items: center;
 }

 .ic_selector_panel-footer {
     border-bottom: none;
     border-top: 1px solid #e5e7eb;
     justify-content: flex-end;
     gap: 8px;
     margin: 10px 0px 10px 0px;
 }

 /* 表格样式 */
 .ic_selector_table {
     width: 100%;
     border-collapse: collapse;
     table-layout: auto;
     min-width: 100%;
     border-spacing: 0px;
 }

 .ic_selector_table thead {
     background-color: #f9fafb;
 }

 .ic_selector_table th,
 .ic_selector_table td {
     padding: 2px 5px 2px 5px;
     text-align: center;
     border-bottom: 1px solid #e5e7eb;
     border-right: 1px solid #ddd;
     font-size: 0.625rem;
     white-space: nowrap;
     overflow: visible;
     text-overflow: ellipsis;
     height: 18px;
 }

 .ic_selector_table th {
     font-weight: 600;
     color: #4b5563;
     text-transform: none;
     letter-spacing: 0;
     min-width: 50px;
 }

 #ic_selector_partNumsTableContainer .ic_selector_table thead {
     position: sticky;
     top: 25px;
     z-index: 3;
     background-color: #f9fafb;
 }

 /* 固定第一列 */
 #ic_selector_partNumsTableContainer .ic_selector_table th:first-child,
 #ic_selector_partNumsTableContainer .ic_selector_table td:first-child {
     position: sticky;
     left: 0;
     z-index: 2;
     min-width: 10px;
     background-color: #ffffff;
 }

 /* 固定第二列 */
 #ic_selector_partNumsTableContainer .ic_selector_table th:nth-child(2),
 #ic_selector_partNumsTableContainer .ic_selector_table td:nth-child(2) {
     position: sticky;
     left: 10px;
     /* 第一列宽度 + 边框宽度 */
     z-index: 2;
     min-width: 100px;

     border-right: 1px solid #e5e7eb !important;
     box-shadow: 1px 0 0 #f9fafb;
     background-color: #ffffff;
 }

 /* 左对齐 */
 #ic_selector_partNumsTableContainer .ic_selector_table :is(td, th):nth-child(n+2):nth-child(-n+4),
 /* 2-4 列（连续） */
 #ic_selector_partNumsTableContainer .ic_selector_table :is(td, th):nth-child(12),
 /* 12 列（单独） */
 #ic_selector_partNumsTableContainer .ic_selector_table :is(td, th):nth-child(n+15):nth-child(-n+17)

 /* 15-17 列（连续） */
     {
     text-align: left;
 }


 /* 表格基础样式调整 */
 #ic_selector_partNumsTableContainer .ic_selector_table {
     border-collapse: separate;
     border-spacing: 0;
 }

 /* 确保固定列有定位上下文 */
 #ic_selector_partNumsTableContainer .ic_selector_table th,
 #ic_selector_partNumsTableContainer .ic_selector_table td {
     position: relative;
     padding: 2px 4px;
     /* 适当增加内边距避免内容拥挤 */
 }

 /* 行hover效果 */
 .ic_selector_table tr:hover {
     background-color: #f0f9ff;
     transition: background-color 0.2s;
 }

 /* PartNum子元素Key样式 */
 .ic_selector_partNum-part-num {
     color: #3B82F6;
     cursor: pointer;
     font-weight: 500;
     text-decoration: underline;
     text-underline-offset: 2px;
 }

 .ic_selector_partNum-part-num:hover {
     color: #2563eb;
 }

 /* 统一输入框基础样式 */
 #ic_selector_ipTableBody input {
     /* 移除默认边框样式 */
     border: 1px solid #ddd;
     border-radius: 4px;
     /* 统一高度，让元素对齐 */
     height: 32px;
     /* 添加过渡效果，提升交互体验 */
     transition: all 0.2s ease;
     box-sizing: border-box;
 }


 /* 数字输入框样式 */
 #ic_selector_ipTableBody input[type="number"] {
     /* 适当宽度，留出输入空间 */
     width: auto;
     min-width: 25px;
     height: 25px;
     padding: 0;
     text-align: center;
 }

 /* 复选框样式 */
 #ic_selector_ipTableBody input[type="checkbox"] {
     /* 调整复选框大小 */
     width: 25px;
     /* 垂直居中对齐 */
     vertical-align: middle;
     cursor: pointer;
 }

 /* 聚焦状态美化 */
 #ic_selector_ipTableBody input:focus {
     outline: none;
     border-color: #66afe9;
     box-shadow: 0 0 0 2px rgba(102, 175, 233, 0.25);
 }

 /* 禁用状态样式 */
 #ic_selector_ipTableBody input:disabled {
     background-color: #f5f5f5;
     cursor: not-allowed;
     opacity: 0.7;
 }

 /* 按钮样式 */
 .ic_selector_button {
     background-color: #10B981;
     color: white;
     border: none;
     border-radius: 4px;
     padding: 6px 12px;
     font-size: 0.75rem;
     font-weight: 500;
     cursor: pointer;
     display: inline-flex;
     align-items: center;
     transition: background-color 0.2s;
 }

 .ic_selector_button:hover {
     background-color: #059669;
 }

 #ic_selector_resetBtn.ic_selector_button {
     background-color: #6B7280;
 }

 #ic_selector_resetBtn.ic_selector_button:hover {
     background-color: #4B5563;
 }

 .ic_selector_button i {
     margin-right: 4px;
 }

 /* 状态指示器 */
 #ic_selector_statusIndicator {
     color: #3B82F6;
     font-size: 0.75rem;
     display: none;
     align-items: center;
 }

 #ic_selector_statusIndicator i {
     margin-right: 4px;
     animation: spin 1s linear infinite;
 }

 @keyframes spin {
     0% {
         transform: rotate(0deg);
     }

     100% {
         transform: rotate(360deg);
     }
 }

 .ic_selector_partNum-item {
     background-color: #f9fafb;
     padding: 15px;
     border-radius: 6px;
     border: 1px solid #e5e7eb;
     cursor: pointer;
     transition: border-color 0.2s;
 }

 .ic_selector_partNum-item:hover {
     border-color: #93c5fd;
 }

 .ic_selector_partNum-name {
     font-weight: 600;
     color: #1f2937;
     margin-bottom: 5px;
 }

 .ic_selector_partNum-desc {
     font-size: 0.875rem;
     color: #6b7280;
 }

 .ic_selector_placeholder-text {
     color: #6b7280;
     font-style: italic;
     text-align: center;
     padding: 20px 0;
 }

 .ic_selector_partNumPanelTitle {
     font-size: 0.9rem;
 }

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

 ::-webkit-scrollbar-track {
     background: #f1f1f1;
 }

 ::-webkit-scrollbar-thumb {
     background: rgba(73, 73, 73, 0.5);
     border-radius: 3px;
 }

 ::-webkit-scrollbar-thumb:hover {
     background: #9ca3af;
 }


 /* 模态框样式 */
 .ic_selector_pin-details-modal {
     display: none;
     position: fixed;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     background-color: rgba(0, 0, 0, 0.5);
     z-index: 1000;
     align-items: center;
     justify-content: center;
     padding: 20px;
 }

 .ic_selector_modal-content {
     background-color: white;
     border-radius: 8px;
     width: 100%;
     max-width: 900px;
     max-height: 90vh;
     overflow-y: auto;
     padding: 20px;
     box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
 }

 .ic_selector_modal-header {
     display: flex;
     justify-content: space-between;
     align-items: center;
     margin-bottom: 20px;
     padding-bottom: 10px;
     border-bottom: 1px solid #e5e7eb;
 }

 .ic_selector_modal-title {
     font-size: 1.25rem;
     font-weight: 600;
     color: #1f2937;
 }

 .ic_selector_close-modal {
     background: none;
     border: none;
     font-size: 1.5rem;
     cursor: pointer;
     color: #6b7280;
     padding: 0;
 }

 .ic_selector_close-modal:hover {
     color: #1f2937;
     background: none;
 }

 .ic_selector_pin-section {
     margin-bottom: 20px;
 }

 .ic_selector_pin-section-title {
     font-weight: 600;
     margin-bottom: 10px;
     color: #1f2937;
 }

 .ic_selector_pin-list-four-columns {
     columns: 4;
     column-gap: 15px;
 }

 .ic_selector_pin-list {
     columns: 2;
     column-gap: 20px;
 }

 .ic_selector_pin-item {
     break-inside: avoid;
     margin-bottom: 5px;
     font-family: monospace;
 }

 .ic_selector_pin-number {
     color: #1f2937;
 }

 .ic_selector_pin-number-bold {
     font-weight: bold;
     color: #1f2937;
 }

 .ic_selector_pin-used {
     color: #dc2626;
 }

 .ic_selector_pin-available {
     color: #059669;
 }

 .ic_selector_ip-label {
     color: #3B82F6;
     font-weight: 500;
 }

 .ic_selector_error-message {
     color: #dc2626;
     padding: 20px;
     text-align: center;
     background-color: #fef2f2;
     border-radius: 6px;
     margin: 20px 0;
 }

 .ic_selector_warning-message {
     color: #d97706;
     padding: 15px;
     background-color: #fffbeb;
     border-radius: 6px;
     margin: 15px 0;
     display: flex;
     align-items: flex-start;
 }

 .ic_selector_warning-message i {
     margin-right: 10px;
     margin-top: 2px;
     font-size: 1.2rem;
 }

 .ic_selector_notification-area {
     position: fixed;
     bottom: 20px;
     right: 20px;
     z-index: 1001;
     width: 350px;
 }

 .ic_selector_notification {
     background-color: white;
     border-left: 4px solid #d97706;
     border-radius: 4px;
     box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
     padding: 15px;
     margin-bottom: 10px;
     animation: slideIn 0.3s ease-out;
 }

 @keyframes slideIn {
     from {
         transform: translateX(100%);
         opacity: 0;
     }

     to {
         transform: translateX(0);
         opacity: 1;
     }
 }

 .ic_selector_notification-title {
     font-weight: 600;
     margin-bottom: 5px;
     color: #1f2937;
 }

 .ic_selector_notification-message {
     font-size: 0.875rem;
     color: #6b7280;
 }

 .ic_selector_global-state-section {
     display: none;
 }

 .ic_selector_loading-spinner {
     display: flex;
     justify-content: center;
     align-items: center;
     height: 100%;
     padding: 50px 0;
 }

 .ic_selector_spinner {
     width: 40px;
     height: 40px;
     border: 4px solid rgba(59, 130, 246, 0.1);
     border-left-color: #3B82F6;
     border-radius: 50%;
     animation: spin 1s linear infinite;
 }

 .ic_selector_pin-usage-legend {
     display: flex;
     gap: 15px;
     margin-bottom: 10px;
     font-size: 0.875rem;
     justify-content: center;
 }

 .ic_selector_legend-item {
     display: flex;
     align-items: center;
     gap: 5px;
 }

 .ic_selector_data-loading-error {
     color: #dc2626;
     text-align: center;
     padding: 40px 20px;
     background-color: #fef2f2;
     border-radius: 6px;
     margin: 20px 0;
 }

 .ic_selector_group-conflict-warning {
     color: #dc2626;
     font-size: 0.875rem;
     margin-top: 5px;
     font-style: italic;
     text-align: center;
 }

 /* IP分类颜色样式 */
 .ip-class-0 {
     background-color: #e0f2fe;
 }

 .ip-class-1 {
     background-color: #dbeafe;
 }

 .ip-class-2 {
     background-color: #e0e7ff;
 }

 .ip-class-3 {
     background-color: #eef2ff;
 }

 .ip-class-4 {
     background-color: #f0fdf4;
 }

 .ip-class-5 {
     background-color: #ecfdf5;
 }

 .ip-class-6 {
     background-color: #fef3c7;
 }

 .ip-class-7 {
     background-color: #fee2e2;
 }

 .ip-class-8 {
     background-color: #fce7f3;
 }

 .ip-class-9 {
     background-color: #f3e8ff;
 }

 .ip-class-peripheral {
     background-color: #f8fafc;
 }

 /* IP类型标签样式 */
 .ip-type-tag {
     display: inline-block;
     padding: 1px 4px;
     border-radius: 3px;
     font-size: 0.7rem;
     margin-left: 5px;
     color: white;
 }

 .ip-type-dedicate {
     background-color: #10B981;
 }

 .ip-type-matrix {
     background-color: #3B82F6;
 }

 .ip-type-dmic {
     background-color: #d97706;
 }

 /* Feature可折叠面板样式 */
 .feature-panel {
     border: 1px solid #e5e7eb;
     border-radius: 6px;
     margin-bottom: 10px;
     overflow-x: visible;
 }

 .feature-panel-header {
     background-color: #f3f4f6;
     padding: 5px;
     cursor: pointer;
     display: flex;
     justify-content: space-between;
     align-items: center;
     user-select: none;
 }

 .feature-panel-header:hover {
     background-color: #e5e7eb;
 }

 .feature-panel-title {
     font-weight: 600;
     color: #1f2937;
     font-size: 0.625rem;
 }

 .feature-panel-icon {
     transition: transform 0.3s ease;
 }

 .feature-panel-icon.open {
     transform: rotate(180deg);
 }

 .feature-panel-content {
     padding: 10px 15px;
     background-color: white;
     display: none;
 }

 .feature-panel-content.open {
     display: block;
 }

 .feature-items {
     /* 移除 flex-wrap: wrap，默认即为不换行 */
     display: flex;
     flex-direction: column;
     /* 改为垂直方向排列 */
     gap: 2px;
     /* 垂直方向的间距（可调整） */
     margin-top: 1px;
 }

 .feature-item {
     display: flex;
     align-items: center;
     gap: 2px;
     font-size: 0.85rem;
 }

 .feature-checkbox {
     accent-color: #3B82F6;
 }

 /* 修改提示框容器样式 */
 .tooltip-container {
     position: relative;
     display: inline-block;
     margin-left: 5px;
     color: #6b7280;
     cursor: help;
 }

 .tooltip-text {
     /* 改为 fixed 定位，脱离文档流，不受父容器 overflow 影响 */
     position: fixed;
     z-index: 2000;
     /* 其他样式保持不变 */
     visibility: hidden;
     opacity: 0;
     transition: opacity 0.3s;
     background-color: #333;
     color: #fff;
     padding: 8px 12px;
     border-radius: 4px;
     font-size: 0.75rem;
     word-wrap: break-word;
     pointer-events: none;
     text-align: left;
     min-width: 250px;
     width: fit-content;
 }

 .tooltip-container:hover .tooltip-text {
     visibility: visible;
     opacity: 1;
 }

 /* 问号图标悬停效果 */
 .tooltip-container:hover i {
     color: #3B82F6;
 }

 /* 移除数字输入框的上下button */
 .no-spinner::-webkit-outer-spin-button,
 .no-spinner::-webkit-inner-spin-button {
     -webkit-appearance: none;
     margin: 0;
 }

 .no-spinner[type=number] {
     -moz-appearance: textfield;
 }