/* Sortable Table Plugin Styles */

.sortable-table {
    border-collapse: collapse;
    width: 100%;
    margin: 1em 0;
}

.sortable-table th,
.sortable-table td {
    border: 1px solid #ddd;
    padding: 8px 12px;
    text-align: left;
}

.sortable-table th {
    background-color: #f8f9fa;
    font-weight: 600;
    position: relative;
}

/* ソート可能なヘッダーのスタイル */
.sortable-table th[data-sort-order] {
    cursor: pointer;
    user-select: none;
    transition: background-color 0.2s ease;
}

.sortable-table th[data-sort-order]:hover {
    background-color: #e9ecef;
}

/* ソートインジケータのスタイル */
.sortable-table th[data-sort-order]::after {
    content: '';
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
}

.sortable-table th[data-sort-order="desc"]::after,
.sortable-table th.sort-desc::after {
    border-top: 6px solid #6c757d;
    border-bottom: none;
}

.sortable-table th[data-sort-order="asc"]::after,
.sortable-table th.sort-asc::after {
    border-bottom: 6px solid #6c757d;
    border-top: none;
}

/* ソート可能なヘッダーの視覚的フィードバック */
.sortable-table th[data-sort-order] {
    position: relative;
    padding-right: 25px;
}

/* ソート中のアニメーション */
.sortable-table tr {
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.sortable-table tr.sorting {
    opacity: 0.7;
    transform: scale(0.98);
}

/* ソートされた列のハイライト */
.sortable-table td.sorted-column {
    background-color: #f0f8ff;
    transition: background-color 0.3s ease;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .sortable-table {
        font-size: 14px;
    }
    
    .sortable-table th,
    .sortable-table td {
        padding: 6px 8px;
    }
    
    .sortable-table th[data-sort-order]::after {
        right: 4px;
    }
}

/* アクセシビリティ対応 */
.sortable-table th[data-sort-order]:focus {
    outline: 2px solid #007cba;
    outline-offset: 2px;
}

/* ダークモード対応 */
@media (prefers-color-scheme: dark) {
    .sortable-table th {
        background-color: #2d3748;
        color: #e2e8f0;
    }
    
    .sortable-table th[data-sort-order]:hover {
        background-color: #4a5568;
    }
    
    .sortable-table td.sorted-column {
        background-color: #2a4365;
    }
    
    .sortable-table th[data-sort-order]::after,
    .sortable-table th.sort-asc::after,
    .sortable-table th.sort-desc::after {
        border-top-color: #a0aec0;
        border-bottom-color: #a0aec0;
    }
}
